gpt4 book ai didi

javascript - 为什么 JavaScript split() 使用不同的变量名会产生不同的输出?

转载 作者:数据小太阳 更新时间:2023-10-29 04:26:29 27 4
gpt4 key购买 nike

以下是 Chrome 开发者控制台的一些代码和输出

案例 1:

var myarr = document.location.hostname.split(".");    //typed
undefined //output
myarr[0] //typed
"ptamz" //output: ONE

案例 2:

var name = document.location.hostname.split(".");     //typed
undefined //output
name[0] //typed
"p" //output: TWO

为什么两个输出(注释 Output: ONE 和 Output: TWO)不同?

截图:

enter image description here

最佳答案

name is a property of window .看起来当您尝试将该属性设置为数组时,键用逗号连接(调用 toString on an array 的结果)。因此,您实际上是将 window.name 属性设置为 document.location.hostname.split(".") 的每个元素的串联,以逗号分隔。

这是我的 Chrome 控制台的屏幕截图,展示了发生的情况:

enter image description here

name[0] 结果为 p 的原因是您可以使用方括号访问字符串的字符:

name = "hello,world";
console.log(name[0]); //"h"

编辑

正如其他人所提到的,这只会在全局范围内发生。您可以在后代范围内自由声明名为 name 的变量。尽管很明显,在这种情况下省略 var 关键字仍会导致您访问 window.name:

function example() {
var name = ["hello", "world"];
console.log(name); //["hello", "world"]
}

关于javascript - 为什么 JavaScript split() 使用不同的变量名会产生不同的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9801214/

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