当我参与我的项目时,我不小心将这个数组命名为“名称”
var name = ["abc","abc","abc","abc"];
它在我的项目中产生了不一致,因为正如我预期的名字[0]会产生第一个abc,HOWEVER !,它给了我第一个字母!!!我在Firefox控制台中尝试了这个数组,它总是给我的数组而不是我从键入Chrome控制台得到的字符串。 所以我再次将该变量重命名为Chrome中的其他内容
var foo = ["abc","abc","abc","abc"];
foo [0]给了我第一个“abc”。随意尝试这个,我猜测命名“名称”有问题,但不知道为什么。感谢
答案 0 :(得分:10)
顶级var name
与window.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会将其转换为一个字符串。