1、什么是標識符?
所謂標識符,就是javascript里的變量、函數、屬性或函數參數的名稱,可由一個或多個字符組成,當然標識符有命名規范
- 標識符第一個字符必須是 一個字母、下劃線(_)或美元符號($)
- 其他字符則可以是字母、下劃線、美元符號或數字
????即:數字不能作為第一個字符
按照慣例,js標識符采用小駝峰命名方式,雖然這種方式不強制,但這種形式和ECMAScript內置函數和對象命名一致,所以算是最佳實踐,比較推薦采用小駝峰命名方式
注意:ECMAScript嚴格區分大小寫, example 和 Example是兩個標識符,typeof是關鍵字,Typeof則不是
2、關鍵字
ECMA-262的關鍵字,用作特殊用途,關鍵字不能用作標識符或屬性名
根據ECMAScript-262最后更新的2023年版本
?
規定的關鍵字如下:?
- await
- break
- case
- catch
- class
- const
- continue
- debugger
- default
- delete
- do
- else
- export
- extents
- false
- finally
- for
- function
- if
- import
- in
- instanceof
- new
- null
- return
- super
- switch
- this
- throw
- true
- try
- typeof
- var
- void
- while
- with
- yield
3、保留字
保留字是保留給未來用作關鍵字的,所以同樣不能用作標識符或屬性名
- 始終保留:?enum
- 嚴格模式下保留:?implements 、interface、?let、package、protected、private、public、static
argument 和 eval 不是關鍵字或保留字,但它們在嚴格模式代碼中受到一些限制。所以也不建議使用
這些詞不能用作標識符,但還可以用作對象的屬性名,但一般不建議使用,已確保能兼容過去和未來的ECMAScript版本
ECMA-62標準原文
ECMAScript? 2023 Language?Specificationhttps://262.ecma-international.org/14.0/#sec-keywords-and-reserved-words
在標準中還有條件關鍵字和上下文關鍵字的區別,但本文不做區分,建議都不要用
ps:夯實基礎,細讀紅寶書的簡單記錄,如果不恰當之處,歡迎交流!