<p>
ECMA-262 描述了一組具有特定用途的關鍵字,這些關鍵字可用于表示控制語句的開始或結束,或者用于執行特定操作等。按照規則,關鍵字也是語言保留的,不能用作標識符。以下就是 ECMAScript的全部關鍵字(帶*號上標的是第 5 版新增的關鍵字):
</p>
<img src="/upload/image/201704/f89f5acecae.gif" alt="" /><br />
<p>
ECMA-262 還描述了另外一組不能用作標識符的保留字。盡管保留字在這門語言中還沒有任何特定的用途,但它們有可能在將來被用作關鍵字。以下是 ECMA-262 第 3 版定義的全部保留字:
</p>
<img src="/upload/image/201704/a559cb36bac.gif" alt="" /><br />
<p>
第 5 版把在非嚴格模式下運行時的保留字縮減為下列這些:
</p>
<p>
<table style="width:100%;" cellspacing="0" cellpadding="2" bordercolor="#000000" border="1">
<tbody>
<tr>
<td>
class<br />
</td>
<td>
enum<br />
</td>
<td>
extends<br />
</td>
<td>
super<br />
</td>
</tr>
<tr>
<td>
const<br />
</td>
<td>
export<br />
</td>
<td>
import<br />
</td>
<td>
<br />
</td>
</tr>
</tbody>
</table>
在嚴格模式下,第 5 版還對以下保留字施加了限制:
</p>
<p>
<table style="width:100%;" cellspacing="0" cellpadding="2" bordercolor="#000000" border="1">
<tbody>
<tr>
<td>
implements<br />
</td>
<td>
package<br />
</td>
<td>
public<br />
</td>
</tr>
<tr>
<td>
interface<br />
</td>
<td>
private<br />
</td>
<td>
static<br />
</td>
</tr>
<tr>
<td>
let<br />
</td>
<td>
protected<br />
</td>
<td>
yield<br />
</td>
</tr>
</tbody>
</table>
注意, let 和 yield 是第 5 版新增的保留字;其他保留字都是第 3 版定義的。為了最大程度地保證兼容性,建議讀者將第 3 版定義的保留字外加 let 和 yield 作為編程時的參考。
</p>
<p>
在實現 ECMAScript 3 的 JavaScript 引擎中使用關鍵字作標識符,會導致“ Identifier Expected”錯誤。而使用保留字作標識符可能會也可能不會導致相同的錯誤,具體取決于特定的引擎。
</p>
<p>
第 5 版對使用關鍵字和保留字的規則進行了少許修改。關鍵字和保留字雖然仍然不能作為標識符使用,但現在可以用作對象的屬性名。一般來說,最好都不要使用關鍵字和保留字作為標識符和屬性名,以便與將來的 ECMAScript 版本兼容。
</p>
<p>
除了上面列出的保留字和關鍵字, ECMA-262 第 5 版對 eval 和 arguments 還施加了限制。在嚴格模式下,這兩個名字也不能作為標識符或屬性名,否則會拋出錯誤。
</p>