js创建对象时,属性加引号与不加引号的区别(转)

概要:

总结一下:

1. 命名要规范,变量名或者属性名不能用数字开头。

2. 可以加引号后使用,但调用要像数组中的属性那样调用  obj['888name']

3. 符合规范的时候,加不加引号一样

以下为转载博文:

 

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

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

1
2
3
4
5
6
7
var obj = {
     name        : '琼台博客' ,
     'age'       : 18,
};
 
document.write( 'name : ' + obj[ 'name' ] + '<br />' );
document.write( 'age : ' + obj.age + '<br />' );

执行:

name : 琼台博客
age : 18

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

1
2
3
4
5
var obj = {
     888name : '琼台博客'
};
 
document.write( '888name : ' + obj.888name + '<br />' );

这时候会报错误:

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

1
2
3
4
5
var obj = {
     '888name' : '琼台博客'
};
 
document.write( '888name : ' + obj.888name + '<br />' );

执行,发现报错:

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

1
2
3
4
5
var obj = {
     '888name' : '琼台博客'
};
 
document.write( '888name : ' + obj[ '888name' ] + '<br />' );

执行:

888name : 琼台博客

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

1
2
3
4
5
6
7
var obj = {
     '' : '这个属性名是空的' ,
     ' ' : '这个属性名是一个空格'
};
 
document.write(  obj[ '' ] + '<br />' );
document.write(  obj[ ' ' ] + '<br />' );

执行:

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

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

 
 

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

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

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

转载于:https://www.cnblogs.com/nostic/articles/5816603.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值