在 JavaScript 中,一些标识符是保留关键字,不能用作变量名或函数名。
JavaScript 标准
所有的现代浏览器完全支持 ECMAScript 3(ES3,JavaScript 的第三版,从 1999 年开始)。
ECMAScript 4(ES4)未通过。
ECMAScript 5(ES5,2009 年发布),是 JavaScript 最新的官方版本。
随着时间的推移,我们开始看到,所有的现代浏览器已经完全支持 ES5。
JavaScript 保留关键字
JavaScript 的保留关键字不可以用作变量、标签或者函数名。有些保留关键字是作为 JavaScript 以后扩展使用。
抽象 | 参数 | 布尔 | 破 | 字节 |
箱 | 抓住 | 煳 | 班级* | 常量 |
继续 | 调试器 | 违约 | 删除 | 做 |
双 | 还 | 枚举* | 估计 | 导出* |
扩展* | 假 | 最后 | 最后 | 浮 |
为 | 功能 | 转到 | 如果 | 实现 |
导入* | 在 | 实例 | 整型 | 接口 |
让 | 长 | 本地 | 新增功能 | 零 |
package | private | protected | public | return |
short | static | super* | switch | synchronized |
this | throw | throws | transiend | true |
try | typeof | var | void | volatile |
while | with | yield |
JavaScript 对象、属性和方法
应该避免使用 JavaScript 内置的对象、属性和方法的名称作为 JavaScript 的变量或函数名:
Array | Date | eval | function | hasOwnProperty |
Infinity | isFinite | isNaN | isPrototypeOf | length |
Math | NaN | name | Number | Object |
prototype | String | toString | undefined | valueOf |
JavaScript 保留关键字
JavaScript 经常与 Java 一起使用。应该避免使用一些 Java 对象和属性作为 JavaScript 标识符:
getClass | java | Java Array | javaClass | JavaObject | JavaPackage |
Windows 保留关键字
JavaScript 可以在 HTML 外部使用。它可在许多其他应用程序中作为编程语言使用。
在 HTML 中,必须(为了可移植性,应该这么做)避免使用 HTML 和 Windows 对象和属性的名称作为 JavaScript 的变量及函数名:
alert | all | anchor | anchors | area |
assign | blur | button | checkbox | clearInterval |
clearTimeout | clientInformation | close | closed | confirm |
constructor | 加密 | 解码 | 解码URI组件 | 默认状态 |
公文 | 元素 | 元素 | 嵌入 | 嵌入 |
encodeURI | encodeURIComponent | 逃 | 事件 | 文件上传 |
重点 | 形式 | 形式 | 框架 | 内高 |
内宽 | 层 | 层 | 链接 | 位置 |
哑剧类型 | 导航 | 航海家 | 框架 | 帧速率 |
隐藏 | 历史 | 图像 | 图像 | 屏幕外增强 |
打开 | 器 | 选择 | 外高 | 外宽 |
包 | 页X偏移 | 第Y页偏移 | 父母 | parseFloat |
parseInt | 密码 | pkcs11 | 插件 | 提示 |
属性是枚举 | 收音机 | 重置 | 屏幕X | 屏幕Y |
滚动 | 安全 | 选择 | 自我 | setInterval |
设置超时 | 地位 | 提交 | 污点 | 发短信 |
文本区域 | 返回页首 | 不可见 | 未受污染 | 窗 |
HTML 事件句柄
除此之外,还应该避免使用 HTML 事件句柄的名称作为 JavaScript 的变量及函数名。
实例:
翁布鲁尔 | 点击 | onerror | 对焦 |
上键下降 | onkeypress | onkeyup | onmouseover |
加载 | onmouseup | onmousedown | 提交 |
非标准 JavaScript
除了保留关键字,在 JavaScript 实现中也有一些非标准的关键字。
一个实例是 const 关键字,用于定义变量。一些 JavaScript 引擎把 const 当作 var 的同义词。把一些引擎则把 const 当作只读变量的定义。
Const 是 JavaScript 的扩展。 JavaScript 引擎支持它用在 Firefox 和 Chrome 中。但是它并不是 JavaScript 标准 ES3 或 ES5 的组成部分。建议:不要使用它。
笔记:关于“名称”
name具有特殊之处,它不是JavaScript的关键字,也不是保留字(保留字在某种意思上是为将来的关键字而保留的单词,因此保留字也不能被用作变量名或函数名),页面在IE浏览器上运行正常,但是 Safari,chrome,Firefox和Opera这些浏览器都给了函数定义了一个非标准的name属性,是window的自带全局属性,所以在全局声明name变量名会出现访问异常问题。