在javascript中,在所有的可以由我们自主命名的都可以称为是标识符,例如:变量名、函数名、属性名都属于标识符;
命名规则
- 标识符中可以含有字母 、数字 、下划线_ 、$符号;
- 标识符不能以数字开头;
- 标识符不能是ES中的关键字或保留字;
- 标识符一般都采用驼峰命名法;
- javascript底层保存标识符时实际上是采用的Unicode编码,理论上讲,所有的utf-8中含有的内容都可以作为标识符;
标识符解析
识符解析是沿着作用域链一级一级地搜索标识符的过程。搜索过程始终从作用域链的前端开始,然后逐级地向后回溯,直到找到标识符为止。
- 如果局部环境中存在着同名标识符,就不会使用父环境中的标识符;
- 如果找不到标识符,表示标识符尚未声明,通常会导致错误发生;
关键字和保留字
ECMA-262描述了一组具有特定用途的关键字,这些关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等。按照规则,关键字也是语言保留的,不能用作标识符。以下就是ECMAScript的全部关键字:
关键字.png
ECMA-262还描述了另外一组不能用作标识符的保留字。尽管保留字在这门语言中还没有任何特定的用途,但他们有可能在将来被用作关键字。以下是EMCA-262第三版定义的全部保留字:
保留字.png
第5版把在非严格模式下运行时的保留字缩减为下列这些:
非严格模式.png
在严格模式下,第5版还对以下保留字加了限制:
严格模式下.png
除了上面列出的关键字和保留字,ECMA-262第5版对eval和arguments还施加了限制。在严格模式下,这两个名字也不能作为标识符或属性名,否则会抛出错误。
无论是在严格模式下还是在非严格模式下,都不要在定义变量名、函数名或者属性名时使用上面列举出的保留字,以免入坑。
网友评论