在javascript中佳簸,在所有的可以由我們自主命名的都可以稱為是標(biāo)識符,例如:變量名颖变、函數(shù)名生均、屬性名都屬于標(biāo)識符;
命名規(guī)則
- 標(biāo)識符中可以含有字母 腥刹、數(shù)字 马胧、下劃線_ 、$符號衔峰;
- 標(biāo)識符不能以數(shù)字開頭佩脊;
- 標(biāo)識符不能是ES中的關(guān)鍵字或保留字蛙粘;
- 標(biāo)識符一般都采用駝峰命名法;
- javascript底層保存標(biāo)識符時實(shí)際上是采用的Unicode編碼威彰,理論上講出牧,所有的utf-8中含有的內(nèi)容都可以作為標(biāo)識符;
標(biāo)識符解析
識符解析是沿著作用域鏈一級一級地搜索標(biāo)識符的過程歇盼。搜索過程始終從作用域鏈的前端開始舔痕,然后逐級地向后回溯,直到找到標(biāo)識符為止豹缀。
- 如果局部環(huán)境中存在著同名標(biāo)識符伯复,就不會使用父環(huán)境中的標(biāo)識符;
- 如果找不到標(biāo)識符耿眉,表示標(biāo)識符尚未聲明边翼,通常會導(dǎo)致錯誤發(fā)生;
關(guān)鍵字和保留字
ECMA-262描述了一組具有特定用途的關(guān)鍵字鸣剪,這些關(guān)鍵字可用于表示控制語句的開始或結(jié)束组底,或者用于執(zhí)行特定操作等。按照規(guī)則筐骇,關(guān)鍵字也是語言保留的债鸡,不能用作標(biāo)識符。以下就是ECMAScript的全部關(guān)鍵字:
ECMA-262還描述了另外一組不能用作標(biāo)識符的保留字铛纬。盡管保留字在這門語言中還沒有任何特定的用途厌均,但他們有可能在將來被用作關(guān)鍵字。以下是EMCA-262第三版定義的全部保留字:
第5版把在非嚴(yán)格模式下運(yùn)行時的保留字縮減為下列這些:
在嚴(yán)格模式下告唆,第5版還對以下保留字加了限制:
除了上面列出的關(guān)鍵字和保留字棺弊,ECMA-262第5版對eval和arguments還施加了限制。在嚴(yán)格模式下擒悬,這兩個名字也不能作為標(biāo)識符或?qū)傩悦K駝t會拋出錯誤纱控。
無論是在嚴(yán)格模式下還是在非嚴(yán)格模式下特姐,都不要在定義變量名、函數(shù)名或者屬性名時使用上面列舉出的保留字编曼,以免入坑僧凤。