最奇怪的javaScript数组文字

时间:2012-02-19 04:55:40

标签: javascript google-chrome

当我参与我的项目时,我不小心将这个数组命名为“名称”

var name = ["abc","abc","abc","abc"];

它在我的项目中产生了不一致,因为正如我预期的名字[0]会产生第一个abc,HOWEVER !,它给了我第一个字母!!!我在Firefox控制台中尝试了这个数组,它总是给我的数组而不是我从键入Chrome控制台得到的字符串。    所以我再次将该变量重命名为Chrome中的其他内容

var foo = ["abc","abc","abc","abc"]; 

foo [0]给了我第一个“abc”。随意尝试这个,我猜测命名“名称”有问题,但不知道为什么。感谢

2 个答案:

答案 0 :(得分:10)

顶级var namewindow.name相同。

window.name是保留的,因此Chrome 隐式地将它转换为字符串。

请注意,将数组转换为字符串只需用逗号分隔它:

["abc","abc","abc","abc"].toString()

是:

"abc,abc,abc,abc"

答案 1 :(得分:2)

Window object具有name属性,其指定如下:

  

Window对象的name属性在获取时必须返回浏览上下文的当前名称,并且 on setting,将浏览上下文的名称设置为新值。

(强调我的)

因此,设置window.name,例如,在全局上下文中执行var window = ...,将浏览上下文的名称设置为右侧。由于名称必须是字符串,因此setter会将其转换为一个字符串。