数组中不允许使用非整型作为索引值, 所以也就不允许用关联数组. 而取代它使用
Object 来表示 map/hash 对象. Array 仅仅是扩展自 Object (类似于其他 JS 中的对象,
就像 Date , RegExp 和 String )一 样来使用.
18. 多行字符串
不要使用
不要这样写长字符串: var myString = 'A rather long string of English text, an error
message \
actually that just keeps going and going -- an error \
message to make the Energizer bunny blush (right through \
those Schwarzenegger shades)! Where was I? Oh yes, \
you\'ve got an error and all the extraneous whitespace is \
just gravy. Have a nice day.';
在编译时, 不能忽略行起始位置的空白字符; "\" 后的空白字符会产生奇怪的错误; 虽然大多
数脚本引擎支持这种写法, 但它不是 ECMAScript 的标准规范.
19. 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];