## 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
};
```