我有一个文件,其唯一目的是在对象中提供大量的键/值对。它看起来像这样:
var myobj = {
some_key: 'some value',
another_key: 'another value',
// thousands of other key/value pairs...
some_key: 'accidental duplicate key with different value'
};
现在当我引用该文件并引用some_key时,我得到了意外的重复值,因为JavaScript将存储最后声明的密钥。
我想编写一个单元测试来检查此对象是否有意外的重复键。问题是JavaScript已经删除了重复项。我如何通过单元测试完成此检查?
(一个答案是使用字符串解析手动解析文件以找到重复项。这很脆弱,我想远离这个。)
答案 0 :(得分:7)
将"use strict";
添加到文件顶部。用法示例:
(function() {
"use strict";
// Throws a syntax error
var a = {
b: 5,
b: 6
};
})();
编辑:由于ES6计算的属性值,此答案不再严格更新。如果需要,可以将对象编写为JSON对象(如果可能的话)并将其放入http://www.jslint.com/,这将检查重复的密钥。另见:"use strict"; now allows duplicated properties?