javascript - 为什么严格模式不会在重复的属性名称上引发语法错误?
问题描述
在 JavaScript 中,如果我们尝试定义具有重复属性的对象,严格模式应该会抛出语法错误,如下所示:
const foo = {a: 1, a: 2};
说我疯了,但我记得确实如此。今天我震惊地发现它至少在 macOS 上的最新 Chrome 和 Firefox 中没有。
function crazy() {
'use strict';
const badboy = {a: 1, a: 2};
return badboy;
}
console.log(crazy().a); // prints 2
发生了什么?
解决方案
推荐阅读
- ios - 带有“首选大标题”和嵌入式 PageViewController 的导航栏不折叠
- sql-server - Why does Linq To Entities create query that is not optimized
- css - Are there limitations to pseudo-class selector in incognito
- javascript - 使用 jQuery 点击更改当前 URL
- python - 如何将某些行文本、可变位置移动到特定列
- reactjs - 条件检查在反应组件中没有按预期工作
- gitlab - How to setup Gitlab EE with HTTPS on a DirectAdmin Server?
- sql - How to Round Decimal Result of a Calculated Column in Oracle SQL
- msbuild - Msbuild 警告不会破坏构建
- r - R:是否可以更新列表中具有 POSIX 相关日期的所有对象的时区