我认识的一个刚学习编程的人遇到了这个问题,让我感到困惑:
请在控制台(Chrome/Firefox)中输入:var name = ['what', 'the', '...?'];
我本来期望name
是一个字符串数组,但是:
typeof name
显示string
而不是Array
- 列出
name
变量会打印出一个字符串而不是一个数组 name.length
是13
而不是3
- 写下
name = name.split(',')
会返回预期的数组["what", "the", "...?"]
,但是name
仍然是一个string
而不是一个数组
name
是唯一一个表现出这种行为的变量名,至少我没有找到其他的。
这只是一个控制台的怪癖,还是一个 JavaScript 引擎的 bug,或者说是什么?
注意:上述情况发生在 Chrome 和 Firefox 上。IE Edge 出人意料地按预期工作(typeof name
是 Array
等等)。未在其他浏览器上测试。
name
以外的变量名。https://developer.mozilla.org/zh-CN/docs/Web/API/Window/name - j08691