转载自[https://mathiasbynens.be/notes/reserved-keywords](https://mathiasbynens.be/notes/reserved-keywords)

JavaScript中的保留关键字

寻找JavaScript中所有保留字的列表? 你来对地方了。 我最近自己也需要这样一个列表,但最终还是比较了所有ECMAScript版本中的保留关键字。 结果列在下面,供将来参考。

ECMAScript 1

一开始,有 ECMAScript 1 。 它列出了以下保留字:

do
if
in
for
new
try
var
case
else
enum
null
this
true
void
with
break
catch
class
const
false
super
throw
while
delete
export
import
return
switch
typeof
default
extends
finally
continue
debugger
function

ECMAScript 2

后来, ECMAScript2 加入了 intbytechargotolongfinalfloatshortdoublenativepublicstaticthrowsbooleanpackageprivateabstractvolatileinterfaceprotectedtransientimplementsinstanceof ,和 synchronized

do
if
in
for
int
new
try
var
byte
case
char
else
enum
goto
long
null
this
true
void
with
break
catch
class
const
false
final
float
short
super
throw
while
delete
double
export
import
native
public
return
static
switch
throws
typeof
boolean
default
extends
finally
package
private
abstract
continue
debugger
function
volatile
interface
protected
transient
implements
instanceof
synchronized

ECMAScript 3

ECMAScript 3 没有在保留关键字列表中引入更改 - 它与ECMAScript 2关键字相同。

ECMAScript 4

没有 ECMAScript 4 这样的东西 。

ECMAScript 5

EcmaScript 5 / 5.1 移除了 intbytechargotolongfinalfloatshortdoublenativethrowsbooleanabstractvolatiletransient ,和 synchronized ; 它补充了 let ,和 yield作为保留字 。

do
if
in
for
let
new
try
var
case
else
enum
eval
null
this
true
void
with
break
catch
class
const
false
super
throw
while
yield
delete
export
import
public
return
static
switch
typeof
default
extends
finally
package
private
continue
debugger
function
arguments
interface
protected
implements
instanceof

需要注意的是 implementsletprivatepublicinterfacepackageprotectedstatic ,和 yield 仅在严格模式下是不允许的。

您可能已经注意到我将 evalarguments 包括在列表中。 这些并不是严格的保留字,但他们确实 具有像关键字一样的行为 - 他们也被严格禁止。

此外, 全局对象 的(未列出的) NaNInfinityundefined 属性在ES5中是不变的或只读属性。 所以即使 var NaN = 42; 这样的代码不会抛出错误,但是它也不会做任何事情。 为了避免混淆,我建议完全避免使用这些标识符,即使它们不是严格保留字。

ECMAScript 6

ECMAScript 6await 作为module中的未来保留字 。 letyield 现在即使在非严格模式中页不允许作为变量名。 在 某些情况下 yield 起到标识符的作用。

do
if
in
for
let
new
try
var
case
else
enum
eval
null
this
true
void
with
await
break
catch
class
const
false
super
throw
while
yield
delete
export
import
public
return
static
switch
typeof
default
extends
finally
package
private
continue
debugger
function
arguments
interface
protected
implements
instanceof

保留字有什么用途?

保留的关键字不能用作 JavaScript中的变量名称 。 为了与旧版本的JavaScript引擎保持最佳的后向兼容性,最好避免将此页面上的关键字用作变量名称或 属性名称 - 即使是旧的ECMAScript 2中的保留字,类似于 chardefault

javascript保留字趣史的更多相关文章

  1. JavaScript填坑史

    说明:  这是笔者平时积累的一些觉得比较有意思或是比较有难度的JavaScript题目理解和心得,会保持长期更新. 1.setTimeout和setInterval深入理解 在setTimeout和s ...

  2. 深入理解JavaScript系列:史上最清晰的JavaScript的原型讲解

    一说起JavaScript就要谈的几个问题,原型就是其中的一个.说了句大话,史上最清晰.本来是想按照大纲式的行文写一下,但写到后边感觉其实就一个概念,没有什么条理性,所以下面就简单按照概念解释的模式谈 ...

  3. 【进阶3-1期】JavaScript深入之史上最全--5种this绑定全面解析(转)

    这是我在公众号(高级前端进阶)看到的文章,现在做笔记  https://github.com/yygmind/blog/issues/20 this的绑定规则总共有下面5种. 1.默认绑定(严格/非严 ...

  4. 【译】异步JavaScript的演变史:从回调到Promises再到Async/Await

    我最喜欢的网站之一是BerkshireHathaway.com--它简单,有效,并且自1997年推出以来一直正常运行.更值得注意的是,在过去的20年中,这个网站很有可能从未出现过错误.为什么?因为它都 ...

  5. Java 趣史-差点把 Java 命名成了 Silk(丝绸)

    差点把 Java 命名成了 Silk(丝绸) Java 命名的由来 Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名.Java语言中的许多库类名称,多与咖啡有关:如JavaBeans(咖啡豆). ...

  6. 史上最全的javascript知识点总结,浅显易懂。

    来源于:http://blog.csdn.net/qiushi_1990/article/details/40260471 一,认识javascript1-1为什么学习JavaScript一).你知道 ...

  7. javaScript的关键字与保留字

    JavaScript 关键字: break case catch continue default delete do else finally for function if in instance ...

  8. 《JavaScript 闯关记》之简介

    简介 JavaScript 是面向 Web 的编程语言,绝大多数现代网站都使用了 JavaScript,并且所有的现代 Web 浏览器(电脑,手机,平板)均包含了 JavaScript 解释器. 这使 ...

  9. Javascript学习笔记

    Javascript 2016年12月19日整理 JS基础 Chapter1 JS是一门运行在浏览器客户端的脚本编程语言,前台语言 组成部分 1. ECMAscript JS标准 2. DOM 通过J ...

随机推荐

  1. Linux top命令总结

    一:在bash里输入top后出现的数据当中目前自己容易理解的有 1.task:中的 num total表示总共有num个进程:num running是正在运行的进程数:num sleeping是正在休 ...

  2. ArcGIS API 和GIServer

    ArcGIS  API 和GIServer 先后以ArcGIS Server(9.3)和GIServer(2.2)为服务端,以ArcGIS API for Flex(1.2).ArcGIS API f ...

  3. js基础学习笔记(六)

    事件(可以被 JavaScript 侦测到的行为) 主要事件表: 加载事件(onload) 事件会在页面加载完成后立即发生,同时执行被调用的程序. 卸载事件(onunload) 当用户退出页面时(页面 ...

  4. zend studio 修改字体大小

    第一步:进入设置窗口    windows -> preferences第二步:进入修改字体的选项卡.    General -> Appearance -> Colors and ...

  5. JS高程研读记录一【事件流】

    事件流主要有冒泡事件.事件捕获及DOM事件流.现浏览器除了IE8及更早版外,基本支持DOM事件流. 冒泡事件由IE提出,而事件捕获则由Netscape提出.但两者却是截然相反的方案. 以DIV点击为例 ...

  6. POJ2431--Expedition(优先队列)

    Description A group of cows grabbed a truck and ventured on an expedition deep into the jungle. Bein ...

  7. ionic 2.x 3.x项目结构解析

    myApp │ config.xml //项目配置文件,包名.名称.minSdkVersion等都在此处配置 │ ionic.config.json │ package.json //项目依赖文件列表 ...

  8. 知物由学 | 见招拆招,Android应用破解及防护秘籍

    本文来自网易云社区. “知物由学”是网易云易盾打造的一个品牌栏目,词语出自汉·王充<论衡·实知>.人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不会知道.“知物由学”希 ...

  9. [SDOI2011]消耗战(虚树+树形动规)

    虚树dp 虚树的主要思想: 不遍历没用的的节点以及没用的子树,从而使复杂度降低到\(\sum\limits k\)(k为询问的节点的总数). 所以怎么办: 只把询问节点和其LCA放入询问的数组中. 1 ...

  10. vue-cli初始化一个项目

    1,换成淘宝源: npm config set registry https://registry.npm.taobao.org/ 检查是否修改成功 npm config get registry 2 ...