最奇怪的javaScript数组文字
Weirdest javaScript array literal
当我在我的项目中时,我不小心将一个数组命名为"name",如下
var name = ["abc","abc","abc","abc"];
它在我的项目中产生了不一致性,因为正如我所期望的,名称[0]会产生第一个abc,好吧!,它给了我第一个字母a!!!。我在Firefox控制台中尝试了这个数组,它总是给我一个数组,而不是我在Chrome控制台中输入的字符串。所以我在Chrome中再次将变量重命名为
var foo = ["abc","abc","abc","abc"];
foo[0]给了我第一个"abc"。请随意尝试,我猜命名"名称"有问题,但不知道为什么。感谢
在顶层,var name
与window.name
相同。
window.name
已保留,因此Chrome将其隐式转换为字符串。
请注意,将数组转换为字符串只是用逗号分隔:
["abc","abc","abc","abc"].toString()
是:
"abc,abc,abc,abc"
Window对象有一个名称属性,指定如下:
Window对象的name属性必须在获取时返回浏览上下文的当前名称,并且在设置时将浏览上下文的名称设置为新值
(重点矿井)
因此,通过例如在全局上下文中执行var window = ...
来设置window.name
,将把浏览上下文的名称设置在右侧。由于名称必须是字符串,所以setter会将其转换为字符串。
相关文章:
- 是索引数组文字的好做法
- 如何避免“;使用数组文字表示法“;以下javascript代码中的jslint错误
- 是否可以将字符串转换为文字对象数组
- 如何检查文字对象是否在 Javascript 数组中
- 为什么有逗号但没有元素的数组文字的长度不为0
- 如何在 JS 中编写数组文字表示法
- Javascript 数组“文字” - 这只是描述它是如何创建的,因为它可以即时更改
- 如何简化 JavaScript/ECMAScript 数组文字生成
- JavaScript/ECMAScript 数组文字生产的 LOOKAHEADs
- Javascript 对象数组文字的可靠长度
- 为什么JSLint告诉我“;使用数组文字符号[]&”;
- 最奇怪的javaScript数组文字
- 带字符串拆分的JS Lint数组文字符号
- JavaScript数组文字定义中逗号后面的值是什么
- 在JavaScript中重写数组文字
- 为什么在javascript中[,]是一个有效的数组文字
- 数组对象与数组文字-性能JavaScript
- 数组文字方法调用和对象文字方法调用的区别
- Js:多维数组文字声明:添加元素
- 如何使用 HJScript 或 HJavaScript 创建数组文字