JavaScript 中的保留关键字是预定义的关键字,用于提供编程语言的内置功能。例如,var
和 let
关键字用于定义变量,function
关键字用于定义函数等。JavaScript 包含超过五十个保留关键字。
简单来说,你不能将保留关键字用作标识符。如果你这样做了,将会产生冲突,并且代码会产生错误的输出或抛出错误。
例如,下面的代码将会抛出一个错误,因为 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 方法
方法 |
toString |
shift |
indexOf |
split |
toLocaleString |
unshift |
lastIndexOf |
substr |
valueOf |
slice |
includes |
substring |
toLocaleDateString |
splice |
isArray |
toLowerCase |
toLocaleTimeString |
sort |
from |
toLocaleLowerCase |
toLocaleString |
forEach |
of |
toUpperCase |
toLocaleUpperCase |
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 可以与其他编程语言如 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 |
|
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 事件处理器
你不应该将 HTML 事件处理器作为 JavaScript 中的变量名使用。
以下是一些事件处理器:
事件处理器 |
事件处理器 |
事件处理器 |
事件处理器 |
onclick |
ondblclick |
onmouseover |
onmouseout |
onmousemove |
onkeydown |
onkeyup |
onkeypress |
onfocus |
onblur |
onchange |
onsubmit |
onreset |
onload |
onunload |
onresize |
onscroll |
|
|
|
总之,你应该避免将上述所有的关键字用作变量名或函数名。