JavaScript - 保留关键字
JavaScript 中的保留关键字
JavaScript 中的保留关键字是预定义的关键字,用于实现编程语言的内置功能。例如,var 和 let 关键字用于定义变量,function 关键字用于定义函数等等。JavaScript 包含超过 50 个保留关键字。
简而言之,您不能将保留关键字用作标识符。如果这样做,就会发生冲突,代码将生成错误的输出或抛出错误。
例如,下面的代码将抛出错误,因为 function 被用作标识符。
var function = "Hello";
保留关键字
以下是保留关键字列表;您不能将它们用作标识符 -
| abstract | double | implements | return |
| arguments | else | in | switch |
| await | enum | instanceof | synchronized |
| boolean | eval | int | this |
| break | export | interface | throw |
| byte | extends | let | throws |
| case | false | long | transient |
| catch | final | native | true |
| char | finally | new | try |
| class | float | null | typeof |
| const | for | package | var |
| continue | function | private | void |
| debugger | goto | protected | volatile |
| default | if | public | yield |
| delete | implements | short | while |
| do | import | static | with |
| double | in | super |
ES5 和 ES6 中添加的保留关键字
JavaScript 的 ES5 和 ES6 版本中添加了一些新关键字。其中一些关键字目前仍在使用,而另一些关键字则保留用于未来版本。
| await | class | enum | export |
| extends | import | let | Super |
已移除的保留关键字
部分保留关键字已从 JavaScript 中移除,您无法使用它们来实现特定功能。此外,您无法使用以下关键字作为标识符,因为许多浏览器不支持它们。
| abstract | boolean | byte | char |
| double | final | float | goto |
| int | long | native | short |
| synchronized | throws | transient | volatile |
JavaScript 对象、属性和方法
不应使用 JavaScript 内置对象、属性和方法的名称作为标识符。
JavaScript 内置对象
| Array | ArrayBuffer | Boolean | DataView |
| Date | Error | eval | Float32Array |
| Float64Array | Function | Generator | GeneratorFunction |
| Int8Array | Int16Array | Int32Array | Intl |
| JSON | Map | Math | Number |
| Object | Promise | Proxy | RangeError |
| ReferenceError | Reflect | RegExp | Set |
| String | Symbol | SyntaxError | TypeError |
| Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array |
| URIError | WeakMap | WeakSet |
JavaScript 内置属性
| length | constructor | prototype | __proto__ | caller | callee |
JavaScript Methods
| toString | shift | indexOf | split |
| toLocaleString | unshift | lastIndexOf | substr |
| valueOf | slice | includes | substring |
| toLocaleDateString | splice | isArray | toLowerCase |
| toLocaleTimeString | sort | from | toLocaleLowerCase |
| toLocaleString | forEach | of | toUpperCase |
| toFixed | map | charAt | toLocaleUpperCase |
| toExponential | filter | charCodeAt | trim |
| toPrecision | reduce | codePointAt | startsWith |
| concat | reduceRight | normalize | endsWith |
| join | every | repeat | match |
| pop | some | replace | test |
| push | find | search | reverse |
| findIndex | slice |
但是,您可以探索更多内置的 JavaScript 方法,并避免将它们用作标识符。
其他保留关键字
JavaScript 可以与其他编程语言(如 HTML、Java 等)一起使用。因此,您还应避免使用 HTML、Java 等语言中保留的关键字。
以下是其他保留关键字的列表,它们大多数是 window 对象的属性。
| alert | elements | frameRate | radio |
| all | embed | hidden | reset |
| anchor | embeds | history | screenX |
| anchors | encodeURI | image | screenY |
| area | encodeURIComponent | images | scroll |
| assign | escape | offscreenBuffering | secure |
| blur | event | open | select |
| button | fileUpload | opener | self |
| checkbox | focus | option | setInterval |
| clearInterval | form | outerHeight | setTimeout |
| clearTimeout | forms | outerWidth | status |
| clientInformation | frame | packages | submit |
| close | innerHeight | pageXOffset | taint |
| closed | innerWidth | pageYOffset | text |
| confirm | layer | parent | textarea |
| constructor | layers | parseFloat | top |
| crypto | link | parseInt | unescape |
| decodeURI | location | password | untaint |
| decodeURIComponent | mimeTypes | pkcs11 | window |
| defaultStatus | navigate | plugin | document |
| navigator | prompt | element | frames |
| propertyIsEnum |
HTML 事件处理程序
不应在 JavaScript 中将 HTML 事件处理程序用作变量名。
这里列出了一些事件处理程序。
| onclick | ondblclick | onmouseover | onmouseout |
| onmousemove | onkeydown | onkeyup | onkeypress |
| onfocus | onblur | onchange | onsubmit |
| onreset | onload | onunload | onresize |
| onscroll |
简而言之,您应该避免使用上述所有关键字作为变量或函数名称。

