JavaScript中可以用字面量来直接创建一个新对象:
代码如下:
var obj = {a:27, "b":99};
如上所述,在用字面量来创建对象的时候,对象中的property定义可以用单引号或双引号来包括,也可以忽略引号。不过,当property中出现空格、斜杠等特殊字符,或者使用的property与JS关键词冲突时,则必须使用引号。
在用字面量来创建对象的时候,property可以是空字符串,property中也可以出现空格:
代码如下:
//empty string is allowed as object property
var o = {"":88, "p":99};
console.log(o);//Object { =88, p=99}
//spaces can be included in property
var o2 = {"good score":99, "bad score":52};
console.log(o2);//Object {good score=99, bad score=52}
值得注意的是,即使使用的字面量相同,每次使用字面量时,JavaScript都会创建一个全新的对象:
代码如下:
//every object literal creates a new and distinct object.
var x = {a:18, b:28};
var y = {a:18, b:28};
console.log(x === y);//false
在字面量中,如果最后多出一个逗号(“}”字符前出现”,”),那么有一些JavaScript解释器将报错。事实上,在IE7中,这种行为将导致浏览器假死等问题。在ECMAScript 5标准中,”}”字符前出现”,”是合法的,该逗号会被直接忽略掉。