JavaScript 標准
所有的現代瀏覽器已經完全支持 ES5(ECMAScript 5)。
JavaScript 保留關鍵字(keyword)
Javascript 的保留關鍵字(標識符)不可以用作變量、標簽或者函數名。有些保留關鍵字是作為 Javascript 以后擴展使用。
abstract | arguments | boolean | break | byte |
case | catch | char | class* | const |
continue | debugger | default | delete | do |
double | else | enum* | eval | export* |
extends* | false | final | finally | float |
for | function | goto | if | implements |
import* | in | instanceof | int | interface |
let | long | native | new | null |
package | private | protected | public | return |
short | static | super* | switch | synchronized |
this | throw | throws | transient | true |
try | typeof | var | void | volatile |
while | with | yield |
* 標記的關鍵字是 ECMAScript5 中新添加的。
JavaScript 對象、屬性和方法
您也應該避免使用 JavaScript 內置的對象、屬性和方法的名稱作為 Javascript 的變量或函數名:
Array | Date | eval | function | hasOwnProperty |
Infinity | isFinite | isNaN | isPrototypeOf | length |
Math | NaN | name | Number | Object |
prototype | String | toString | undefined | valueOf |
Java 保留關鍵字
JavaScript 經常與 Java 一起使用。您應該避免使用一些 Java 對象和屬性作為 JavaScript 標識符:
getClass | java | JavaArray | javaClass | JavaObject | JavaPackage |
Windows 保留關鍵字(reserved word)
JavaScript 可以在 HTML 外部使用。它可在許多其他應用程序中作為編程語言使用。
在 HTML 中,您必須(為了可移植性,您也應該這么做)避免使用 HTML 和 Windows 對象和屬性的名稱作為 Javascript 的變量及函數名:
alert | all | anchor | anchors | area |
assign | blur | button | checkbox | clearInterval |
clearTimeout | clientInformation | close | closed | confirm |
constructor | crypto | decodeURI | decodeURIComponent | defaultStatus |
document | element | elements | embed | embeds |
encodeURI | encodeURIComponent | escape | event | fileUpload |
focus | form | forms | frame | innerHeight |
innerWidth | layer | layers | link | location |
mimeTypes | navigate | navigator | frames | frameRate |
hidden | history | image | images | offscreenBuffering |
open | opener | option | outerHeight | outerWidth |
packages | pageXOffset | pageYOffset | parent | parseFloat |
parseInt | password | pkcs11 | plugin | prompt |
propertyIsEnum | radio | reset | screenX | screenY |
scroll | secure | select | self | setInterval |
setTimeout | status | submit | taint | text |
textarea | top | unescape | untaint | window |
HTML 事件句柄
除此之外,您還應該避免使用 HTML 事件句柄的名稱作為 Javascript 的變量及函數名。
實例:
onblur | onclick | onerror | onfocus |
onkeydown | onkeypress | onkeyup | onmouseover |
onload | onmouseup | onmousedown | onsubmit |
非標准 JavaScript
除了保留關鍵字,在 JavaScript 實現中也有一些非標准的關鍵字。
一個實例是 const 關鍵字,用於定義變量。 一些 JavaScript 引擎把 const 當作 var 的同義詞。另一些引擎則把 const 當作只讀變量的定義。
Const 是 JavaScript 的擴展。JavaScript 引擎支持它用在 Firefox 和 Chrome 中。但是它並不是 JavaScript 標准 ES3 或 ES5 的組成部分。建議:不要使用它。
var this="aa";

注意:如果把關鍵字用作變量名或函數名,可能得到諸如 "Identifier Expected"(應該有標識符、期望標識符)這樣的錯誤消息。
注意:如果將保留字用作變量名或函數名,那么除非將來的瀏覽器實現了該保留字,否則很可能收不到任何錯誤消息。當瀏覽器將其實現后,該單詞將被看做關鍵字,如此將出現關鍵字錯誤。