JS中的变量名有什么问题?

时间:2018-04-02 05:42:44

标签: javascript arrays variables

var name = ['name1', 'name2', 'name2'];
console.log(name, name.length);
// name1,name2,name2 17

AND

var names = ['name1', 'name2', 'name2'];
console.log(names, names.length);
// (3) ["name1", "name2", "name2"] 3

JS中的变量name有什么问题?

2 个答案:

答案 0 :(得分:2)

https://www.sitepoint.com/five-ways-to-hide-elements-in-css/ Gets/sets窗口的名称。

string = window.name;
window.name = string;

窗口名称主要用于设置超链接和表单的目标。 Windows不需要名称。

在一些框架中,它也被用于提供跨域消息传递(例如,window.name和Dojo的SessionVars)作为JSONP的更安全的替代方案。但是,托管敏感数据的现代Web应用程序不应依赖window.name进行跨域消息传递,而应使用postMessage API。

  

不要将值设置为unstring,因为其get方法会调用toString方法。

答案 1 :(得分:1)

这是因为 window.name 是保留的。类型应该是字符串。因此,当您通过 var 声明 name 并分配一个数组时,它将被隐式转换为字符串。

您可以尝试以下代码:

let name = ['name1', 'name2', 'name2']; console.log(name, name.length); // (3) ["name1", "name2", "name2"] 3

因为 let 变量不会附加到 window 对象中。

您可以参考此MDN链接:https://developer.mozilla.org/en-US/docs/Web/API/Window/name