Number
除了标准,之外,JavaScript 有许多不同的文字语法String
,这些语法在Boolean
其他语言中很常见:
foo = {};
是相同的:
foo = new Object();
尽管
foo = [];
是相同的:
foo = new Array();
和
foo = /foo/;
是相同的:
foo = new RegExp('foo');
这些文字语法有自己的怪癖和细微差别。对于对象,键值对用逗号分隔,键和值用冒号分隔:
foo = {
bar: 'baz',
fizz: 'buzz'
};
相当于:
foo = new Object();
foo.bar = 'baz';
foo.fizz = 'buzz';
对于数组,数组成员只是用逗号分隔:
foo = ['bar', 'baz'];
相当于:
foo = new Array();
foo.push('bar', 'baz');
请注意,对于数组,构造函数有一个缺陷。new Array(1, 2, 3)
等价于[1, 2, 3]
,但new Array(3)
不等价于[3]
,而是等价于[undefined, undefined, undefined]
(大小为 3 且没有成员的数组)。
这种方便的初始化结构,以及相互嵌套对象和数组的能力是导致JSON 数据交换格式形式化的原因