在 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
发生了什么?