以下是Chrome开发者控制台的一些代码和输出
情况1:
var myarr = document.location.hostname.split("."); //typed
undefined //output
myarr[0] //typed
"ptamz" //output: ONE
Run Code Online (Sandbox Code Playgroud)
案例2:
var name = document.location.hostname.split("."); //typed
undefined //output
name[0] //typed
"p" //output: TWO
Run Code Online (Sandbox Code Playgroud)
为什么两个输出(注释输出:ONE和输出:TWO)不同?
截图:

Jam*_*ice 13
name是的财产window.看来,当您尝试将该属性设置为数组时,键将以逗号(调用toString数组的结果)连接.因此,您实际上将window.name属性设置为每个元素的串联document.location.hostname.split("."),以逗号分隔.
这是我的Chrome控制台的屏幕截图,展示了发生的情况:

name[0]然后导致的原因p是您可以使用方括号访问字符串的字符:
name = "hello,world";
console.log(name[0]); //"h"
Run Code Online (Sandbox Code Playgroud)
编辑
正如其他人所提到的,这只是全球范围内的情况.您可以自由地声明name在后代范围内命名的变量.虽然显然var在这种情况下省略关键字仍然会导致您访问window.name:
function example() {
var name = ["hello", "world"];
console.log(name); //["hello", "world"]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
582 次 |
| 最近记录: |