JavaScript对象的键值对

JavaScript 的对象是一种无序的集合数据类型,是由键值对组成的,与python字典有一定相似性。不过javascript的键要求必须是字符串,而值可以是其他类型,甚至键必须是唯一的,因为当键不唯一时,后面的键会覆盖前面的键。

var max = {
           'birth-month':'January',
           'birth-month':1}
alert(max['birth-month']);
弹出的对话框显示1,而不是January.

既然键是字符串,我们可以用加引号来声明键,如'name',而官方也给出了我们不加引号也声明的例子,如age,这两种声明有什么不同呢?

var max = {'name':'marxwolf',
            age:18,
           'birth-month':'January',
           'birth-month':18}
alert(max.name);
alert(max['name']);
alert(max.age);
alert(max['age']);
//alert(max.birth-month);
alert(max['birth-month']);
如果键的声明是一个有效的变量名,我们可以加引号,也可以不加引号,也就是说这两种情况是等价的,我们可以用max.name索引,也可以用max['name']索引,这两种情况完全是等价的。

但是如果键的声明不是一个有效的变量名,比如说birth-month,加入了中划线,就必须加引号,不然会产生语法错误,而这种情况下的调用,也必须是max['birth-month']这种方式。
但是,我又发现当在循环中调用的时候,好像只能用max[key]这种形式,而max.key这种形式会报错,我也不清楚为什么,等我搞明白了再来更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值