JS声明对象时属性名加引号与不加引号的区别

JavaScript 2013-06-04 JavaScript,对象,引号

这个问题很好有人关注,但我每一次在声明一个对象属性的时候都要想想要不要给属性加引号?加引号与不加引号有什么区别?

其实在JavaScript中,加引号与不加引号都是一样用,都是有效的。如:

var obj = {
	name		: '琼台博客',
	'age'		: 18,
};

document.write( 'name : ' + obj['name'] + '<br />' );
document.write( 'age : ' + obj.age + '<br />' );

执行:

name : 琼台博客
age : 18

哪在什么时候有区别呢?在你使用一些非合法命名规则的时候,就显的有必要了,比如:

var obj = {
	888name : '琼台博客'
};

document.write( '888name : ' + obj.888name + '<br />' );

这时候会报错误:

但你给加上引号,就没事了

var obj = {
	'888name' : '琼台博客'
};

document.write( '888name : ' + obj.888name + '<br />' );

执行,发现报错:

我们引用对象成员的时候,由于属性名不是合法命名规则,因此也需要使用中括号的方式来访问,也建议大家以后采取中括号的方式读取对象属性值,以免有意外错误

var obj = {
	'888name' : '琼台博客'
};

document.write( '888name : ' + obj['888name'] + '<br />' );

执行:

888name : 琼台博客

甚至还可以更特殊一点,如

var obj = {
	'' : '这个属性名是空的',
	' ' : '这个属性名是一个空格'
};

document.write(  obj[''] + '<br />' );
document.write(  obj[' '] + '<br />' );

执行:

这个属性名是空的
这个属性名是一个空格

虽然实际我们写程序一般都遵守程序公约,不会去制造一些另类,但特殊性情况下,这些能力也可以弥补一些变态需求。

文字链接:《JS声明对象时属性名加引号与不加引号的区别

文章地址:http://www.qttc.net/201306336.html

除非标注,琼台博客所有博文均为原创,转载请加文字链接注明来源

乳名?小名?昵称?网名?均可

email,放心,我不会给你乱投广告的

想获得回访就把你的站点URL写上(没有留空)

[NOTICE]木要投放广告
[NOTICE]木要骂人,说不该说的话
[NOTICE]自由言论,但要遵纪守法

Comments 1

  • for(var i=0;i<10000;i++){ $('.zhichi a').click();} 貌似可以 http://www.qttc.net/api.php?action=setSupportBlog 把弄挂。
    2015-08-24 15:11:22 [ 跟帖 ]
    1 #