我正在使用javascript中的一些基本操作,尤其是数组,我发现了一些非常奇怪的东西: 让我们宣布
var myVar = [1,2,3];
现在,如果我检查typeof myVar
我当然得到"object"
作为结果。
好的,现在是我的第一个问题
1)我可以向myVar
添加动态属性(显然只是针对此测试),例如myVar.test = 'test'
,因为myVar
是一个对象(即使myVar
是一个数组),在JavaScript中也可以向对象添加动态属性,对吗?
宣布myVar.test
后,我发现Chrome,Safari和Firefox JavaScript控制台之间存在一些差异。
如果在Chrome(或节点控制台)中我触发console.log(myVar)
,我会获得[1, 2, 3, test: "test"]
,但在Firefox,Safari以及使用相同命令的JsBin中,我得到[1, 2, 3]
。< / p>
但如果我在所有这些浏览器中执行:
for(var k in myVar){
console.log(k,myVar[k]);
}
我获得了具有相应值的所有键:
0 -> 1, 1 -> 2, 2 -> 3, test -> test
因此我的第二个问题是:
2)这个结果是因为我正在做一些强制语言的事情,所以当尝试打印myVar
时,console.log在某些浏览器中无法正常工作?
这是一个简单的回顾:http://jsbin.com/risobewazu/edit?html,js,console,output
提前致谢。