首页 > 解决方案 > 为什么严格模式不会在重复的属性名称上引发语法错误?

问题描述

在 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

发生了什么?

标签: javascriptstrict-mode

解决方案


推荐阅读