关于对象字面量花括号{} key的类型

原来对{}方式建立的实例化后的对象的key,理解不清,只知道,数组加不加“”,反正都是字符,现在要理解下,到底怎么回事?返回结果是

var a={};
a[1]="a";
a["1"]=1;
a["'1'"]="aa";
a["b"]=2;
a[{1:2}]=3;

console.log(a);
for(var i in a){
	console.log(i);
	console.log(typeof i);
	console.log(i.length);
}

  

Object {1: 1, '1': "aa", b: 2, [object Object]: 3} 
1 //会把第一个没有加“”的覆盖
string 
1
'1' 
string 
3   //单引号算长度了
b 
string 
1 
[object Object]  //将那个对象,调用了toString的方法
string
15 

总结,那个key都是string类型,如果是对象等,会调用toString的方向显示。

原文地址:https://www.cnblogs.com/danghuijian/p/3818981.html