以下是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
截图:
解决方法
name
is a property of window
.看起来当您尝试将该属性设置为数组时,键将以逗号连接(调用
toString
on an array的结果).所以你实际上是将window.name属性设置为document.location.hostname.split(“.”)的每个元素的串联,用逗号分隔.
这是我的Chrome控制台的屏幕截图,演示了会发生什么:
名称[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"] }
原文地址:https://www.jb51.cc/js/159350.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。