首页 > 解决方案 > 为什么 JavaScript 将名为“name”的数组解析为字符串

问题描述

定义数组时:

var name = ['A', 'B', 'C'];

并在控制台上显示:

console.log(name);

我们得到一个字符串!

"A,B,C"

但是当用另一个名字定义数组时:

var haha = ['A', 'B', 'C'];

当显示“它应该做什么”时,我们得到一个数组!

(3) ["A", "B", "C"]
0: "A"
1: "B"
2: "C"
length: 3
__proto__: Array(0)

为什么会这样?

标签: javascriptarrays

解决方案


name是一个全局属性,它是window对象的一部分。它有一个特殊的属性,可以通过调用它们的.toString()方法将其值转换为字符串:

window.name将使用 toString 方法将所有值转换为其字符串表示形式。

-MDN _

因此,当您将全局变量设置为 时var name,您将name在窗口上设置全局变量,这会将您的数组转换为字符串。您可以使用letconst不将其添加到 中window,从而将其保留为数组:

const name = [1, 2, 3];
console.log(name);


推荐阅读