在Javascript中使用标识符“名称”创建数组的行为就像字符串一样,为什么呢?

时间:2019-06-11 02:07:48

标签: javascript arrays

我只是创建一个随机数组,但是当我选择“名称” 作为标识符时,我遇到了麻烦。

我正在编写以下代码:

var name = ["test", 10, true];
console.log(name);

当我检查控制台时,它没有返回数组,而是返回一个像"test,10,true"

这样的字符串。

如果我将标识符从"name"更改为"x"或其他任何内容,那么它将正常工作。

有人可以让我知道这是怎么回事吗?

2 个答案:

答案 0 :(得分:2)

您要分配给window.name,它会根据您提供的内容调用toString()。您不能在全局范围内将name用作变量名。

答案 1 :(得分:1)

全局变量name等效于window.name属性,它必须是字符串。因此,您的任务相当于

name = ["test", 10, true].toString();

您必须小心全局变量,以确保它们不与window属性冲突,因为其中一些具有特殊的行为。