在不同浏览器上使用数组/对象/控制台进行奇怪的行为

时间:2016-06-14 12:50:40

标签: javascript arrays javascript-objects console.log

我正在使用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

提前致谢。

0 个答案:

没有答案