js添加key为数字的对象,通过类似于通过访问数组的中括号形式访问对象属性

var obj={};obj[1] = "mm";obj[2]="nn";console.log(obj[1]);

同var obj={};obj["1"] = "mm";obj["2"]="nn";console.log(obj["1"]);

其实创建对象的时候还可以这么写

var obj={};obj["mm"] = "mm";obj["nn"]="nn";console.log(obj["mm"]);

var obj = {

 name:'lily',
 year:'20'
 
}
alert(obj.year);
var y = 'year';
// 用变量获取
alert(obj[y]);

对象的属性确实可以通过类似于通过访问数组的中括号形式进行访问。
原理上来讲,是js这样设计的,很多弱类型语言都是如此设计。
可是并不能理解为对象跟数组没区别,例如说,你可以使用Array类型方括号的形式访问Object类型数据的属性。但是反过来,不能使用Object的点号访问Array类型数据的内容。
在js里,Key对应Value的数据结构,其实都是Object类型的,Array类型的数据都是一维的,数字下标的数据集合。

原文地址:https://www.cnblogs.com/thiaoqueen/p/7520222.html