我对Chrome 59.0.3071.115中此代码的行为感到非常困惑:
var names = ["Cat 1", "Cat 2"];
console.log(names);
打印数组对象,但
var name = ["Cat 1", "Cat 2"];
console.log(name);
打印字符串"Cat 1, Cat 2"
。
为什么会这样?
答案 0 :(得分:5)
name
是预定义的getter/setter property of the window
object,并且始终是字符串数据类型。因此,当您分配给它时,您没有分配给变量,而是使用setter,它将给定值转换为字符串。