标识符和保留字
标识符就是一个名字。在JavaScript中,标识符用来对变量和函数进行命名,或者用作JavaScript代码中某些循环语句中的跳转位置的标记。JavaScript标识符必须以字母、下划线(_)或美元符($)开始。后续的字符可以是字母,数字,下划线或美元符(数字是不允许作为首字符出现的,以便JavaScript可以轻易区分开标识符和数字)。
例:合法的标识符:
i my_name v13 _dummy $str
由于可移植性和易于书写的考虑,通常我们只使用ASCII字母和数字来书写标识符。然而需要注意的是,JavaScript允许标识符中出现Unicode字符全集中的字母和数字。由此,程序员也可以使用非英语语言或数字符号来书写标识符。
和其他编程语言一样,JavaScript保留了一些标识符为自己所用,这些“保留字”不能用作普通的标识符。
保留字
JavaScript把一些标识符拿出来用作自己的关键字。因此,就不能再在程序中把这些关键字用作标识符了:
breakdelete functionreturn typeof
casedo if switch var
catchelse inthis void
continuefalse instanceofthrow while
debuggerfinally newtrue with
defaultfor nulltry
JavaScript同样保留了一些关键字,这些关键字在当前的语言版本中并没有使用,但在未来的版本中可能会遇到:
classconst enumexport extendsimport super
此外,下面这些关键字在普通的JavaScript代码中是合法的,但在严格模式下是保留字:
implementslet privatepublic yieldinterface packageprotected static
arguments eval 并不完全是保留字,但不能作为变量名,函数名或参数名
ECMAScript 3将java的所有关键字都列为自己的保留字,但这些保留字在ECMAScript 5中放宽了限制
JavaScript预定义了很多全局变量和函数,应当避免把他们的名字用作变量名和函数名:
argumentsencodeURI InfinityNumber RegExp
ArrayencodeURIComponent isFiniteObject String
booleanerror isNaNparseFloat SyntaxError
dataeval JSONparseInt TypeError
decodeURIEvalError MathRangeError undefined
decodeURIComponentFunction NaNReferenceError URIError
JavaScript的具体实现可能定义独有的全局变量和函数,每一种特定的JavaScript运行环境(客户端,服务器端等)都有自己的一个全局属性列表。