JS数组称为“;name”;行为怪异
JS Array called "name" behaves strangely
我玩了一会儿,创建了一个包含一些字符串的javascript数组。当我试图访问数组时,它的行为非常奇怪。如果调用其他方法,数组将正确创建并按预期工作。
var name = ["foo", "bar"];
alert(name); // shows "foo,bar"
如果变量名为name
,为什么要将数组转换为字符串?根据标准(链接网站所基于的标准),它应该是一个有效的变量名称:https://mothereff.in/js-variables#name
如果在浏览器环境中执行javascript,代码将在窗口上下文中执行。此上下文已经设置了一些全局变量。其中之一是window.name,它是一个字符串。设置变量后,浏览器将自动将新值强制转换为字符串,从而导致奇怪的行为。
因此,即使name
是一个有效的变量名,如果您在浏览器中执行javascript,也不应该在全局上下文中使用它(它在例如node.js中应该可以正常工作)。
相关文章:
- 如何在映射数组中添加换行符
- javascript结合了数组和字典
- 需要帮助设置json数组
- 不能从angular2中的子组件指定父组件中的数组
- 使用JS将数组转换为json对象
- 数组在递归方法中设置为null
- knockoutjs可观察数组
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- JS数组称为“;name”;行为怪异
- ngRepeat:dupes 使用名为“name”的数组在中继器中复制键.用其他名称,它是工作
- Javascript名称数组输入选择器(name[sometext])
- 用于html输入元素的数组长度'的name属性
- 不能将数组赋值给全局变量name
- Javascript:测试是否this.name ==数组元素
- 未能使用data-name来匹配数组,尽管它应该匹配
- 在数组中的复选框上调用.name将返回未定义
- 如何将javascript数组转换为'name'在JSON行的名称/值对中
- 将section id name添加到数组中仅一次
- jQuery:生成"name”;动态属性数组
- 更改 Name: 的值,在序列化数组中的对象中