奇怪的事情发生在数组

Nic*_*bbs 3 javascript jquery

我正在使用codepen.io,但出于某种原因我的代码没有按预期工作:

var name = ["one",'two','three'];
$('body').append('<p>'+ name[0] + '</p>');
Run Code Online (Sandbox Code Playgroud)

该代码将字母"o"附加到页面.当我将代码切换到:

var person = ["one",'two','three'];
$('body').append('<p>'+ person[0] + '</p>');
Run Code Online (Sandbox Code Playgroud)

"one"被附加到页面.谁知道发生了什么事?

这是一个例子:http://codepen.io/ntibbs/pen/ZbPPBm

Jam*_*rpe 6

您似乎处于全局范围内,因此在声明name变量时,您将与全局window.name属性发生冲突.

这个属性是一个字符串,所以每当你分配什么,它被强制转换为字符串.

["one",'two','three']被强制转换为字符串时,它首先执行一个Array.join,然后最终执行,"one,two,three"分配给name. name[0]给你第一个字符,"o".

使用不同的变量名称,person您不会看到此问题,因为您没有与窗口属性作斗争.