gpt4 book ai didi

javascript - 请解释这个 Javascript 怪癖

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:41:05 27 4
gpt4 key购买 nike

我认识的某个人刚刚学习编程,偶然发现了这个,让我感到困惑:

请打开控制台 (Chrome/Firefox) 并输入:var name = ['what', 'the', '...?'];

我希望 name 是一个字符串数组,但是:

  • typeof name 显示 string 而不是 Array
  • 列出 name 变量打印字符串而不是数组
  • name.length13 而不是 3
  • 编写 name = name.split(',') 按预期返回数组 ["what", "the", "...?"],但是 name 仍然是一个 string,而不是一个数组

name 是唯一一个似乎以这种方式运行的变量名称,或者至少我找不到另一个。

这只是控制台问题、JavaScript 引擎错误还是什么?

注意:以上情况发生在 Chrome 和 Firefox 上。 IE Edge 出人意料地按预期工作(typeof nameArray 等等)。未在其他浏览器上测试。

最佳答案

window.name是一个全局变量,它是 DOM 中的一个字符串。

请注意,您可以通过在函数作用域中声明变量来绕过它:

(function() {
var name = ['foo', 'bar'];
console.log(typeof name);
})();

至于为什么 IE/Edge 不同——这是他们对规范的解释,而且可能多年来一直如此。现在更改它将是一个重大更改。

关于javascript - 请解释这个 Javascript 怪癖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42303428/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com