Teo*_*ndu 3 javascript arrays string variables
我认识的人只是学习编程而且偶然发现了这一点让我感到困惑:
请打开控制台(Chrome/Firefox)并输入: var name = ['what', 'the', '...?'];
我希望name是一个字符串数组,但是:
typeof name显示string而不是Arrayname变量会打印字符串而不是数组name.length是13不是3name = name.split(',')返回一个数组["what", "the", "...?"],但name仍然是string一个数组,而不是一个数组name 是唯一似乎以这种方式行事的变量名,或者至少我找不到另一个变量名.
这只是一个控制台怪癖,一个JavaScript引擎错误,还是什么?
注意:上述操作发生在Chrome和Firefox上.IE Edge令人惊讶地按预期工作(typeof name就是Array这样).未在其他浏览器上测试过.
window.name 是一个全局,它是DOM中的一个字符串.
请注意,您可以通过在函数范围内声明变量来解决它:
(function() {
var name = ['foo', 'bar'];
console.log(typeof name);
})();Run Code Online (Sandbox Code Playgroud)
至于为什么IE/Edge不同 - 它们对规范的解释可能多年来一直如此.现在改变它将是一个突破性的变化.