javascript - "JavaScript: The Good Parts"- 为什么 delete 可以用作属性名称,而书中暗示它不应该

标签 javascript

这是第 2 章名称的摘录:

A name cannot be one of these reserved words:

... delete ...

然后在该部分的后面:

Names are used for ... property names...

如果这是真的,那么为什么它在我的浏览器控制台中有效:

> a = {};
> a.delete = 1;
> a.delete + 2 === 3
true

我的浏览器使用“版本 36.0.1985.143 m”的 Google Chrome,操作系统使用 Windows 8.1 Enterprise。

作者的意思是属性名称不应该是保留字还是我遗漏了什么?

最佳答案

当这本书写成的时候,ECMAScript 3 统治了地球,这是一个真实的陈述。

但是,现代浏览器正在运行 ECMAScript 5,它取消了该要求。

如果你有 IE,请将自己置于 IE6 或 IE7 兼容模式,它会失败。

顺便说一句,即使使用 ECMAScript 3,您仍然可以将其编写为

a["delete"]

关于javascript - "JavaScript: The Good Parts"- 为什么 delete 可以用作属性名称,而书中暗示它不应该,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25343756/

相关文章:

javascript - 当鼠标悬停在 d3 中的图例上时,突出显示堆叠条形图中的相应图层

javascript - 指纹js2如何获取get函数结果?

php - 在默认浏览器中打开 URL 的 Javascript 代码

javascript - Handlebars 范围问题 : Can't access template variable from embedded `each`

javascript - 尝试显示存储在本地存储中的数组的值时,对象可能为空错误( typescript )

javascript - 如何检查字符串是否是有效的 Figma 链接?

javascript - 如何使用 jQuery/Javascript 修改外部 CSS 文件的属性

Javascript 正则表达式 [删除事件]

javascript - Angular 6函数未按顺序执行所有代码行

javascript - angularJS $http get 中的可选参数