Array 和 Object 直接量

最后更新于:2022-04-01 22:24:57

## Array 和 Object 直接量 使用 使用 `Array` 和 `Object` 语法, 而不使用 `Array` 和 `Object` 构造器. 使用 Array 构造器很容易因为传参不恰当导致错误. ``` // Length is 3. var a1 = new Array(x1, x2, x3); // Length is 2. var a2 = new Array(x1, x2); // If x1 is a number and it is a natural number the length will be x1. // If x1 is a number but not a natural number this will throw an exception. // Otherwise the array will have one element with x1 as its value. var a3 = new Array(x1); // Length is 0. var a4 = new Array(); ``` 如果传入一个参数而不是2个参数, 数组的长度很有可能就不是你期望的数值了. 为了避免这些歧义,我们应该使用更易读的直接量来声明. ``` var a = [x1, x2, x3]; var a2 = [x1, x2]; var a3 = [x1]; var a4 = []; ``` 虽然 Object 构造器没有上述类似的问题, 但鉴于可读性和一致性考虑, 最好还是在字面上更清晰地指明. ``` var o = new Object(); var o2 = new Object(); o2.a = 0; o2.b = 1; o2.c = 2; o2['strange key'] = 3; ``` 应该写成: ``` var o = {}; var o2 = { a: 0, b: 1, c: 2, 'strange key': 3 }; ```
';