我刚刚发现在最后的Chrome 42和FF 37.0.2中,这些代码行完全合法
"use strict";
var o = { p: 1, p: 2 };
(从MDN复制粘贴)
在IE 10-11和Opera 28.0.1750中,它会按预期引发错误。
在同一时间,
abc=0;
导致错误(未声明的变量),如预期的那样。
有人知道造成这种变化的原因吗?
最佳答案
这里有一个Bugzilla ticket。从我收集到的信息(在这里和我浏览过的其他页面)中,重复的属性在ECMAScript第6版中是合法的,而在严格模式下则禁止使用ES5。
关于javascript - "use strict";现在允许重复属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29936845/