我正在嘗試不明智的變量聲明,并得出以下觀察結(jié)果。定義一個(gè)名為 的變量'let',如下所示:let let = 7;不出所料,會(huì)導(dǎo)致錯(cuò)誤:SyntaxError: let is disallowed as a lexically bound name。嘗試對(duì)變量 name 執(zhí)行相同的操作'const',如下所示:let const = 7;導(dǎo)致不同的錯(cuò)誤: SyntaxError: Unexpected token 'const'。查看規(guī)范,第13.3.1.1 節(jié)靜態(tài)語義:早期錯(cuò)誤不允許'let' 在這種類型的聲明中作為變量名(沒有提及'const')。這更像是一種好奇,但是幕后發(fā)生了什么,這只會(huì)被視為'let' 不允許的變量名,同時(shí)被'const' 解釋為令牌?(順便說一下,var let = 7JavaScript 在語法上似乎是正確的,同時(shí)var const = 7也會(huì)導(dǎo)致錯(cuò)誤SyntaxError: Unexpected token 'const'。)
ES6 不允許變量名稱 - 為什么名稱“let”和“const”的行為不同?
牧羊人nacy
2023-08-05 19:27:13