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:夯实基础,细读红宝书的简单记录,如果不恰当之处,欢迎交流!