例如,
var name = [1,2,3] // name === "1,2,3"
name = {"a":"b"} // name === "[object Object]"
我不明白这种情况。
javascript上'name'或'window.name'的标识是什么?
ADD:
我使用了Chrome的开发工具
答案 0 :(得分:2)
宣布
时name = {"a":"b"}
您正在创建一个对象,并且对象的字符串表示形式为[object Object]
,也就是说,当您尝试将对象转换为字符串时(这可能就是这种情况),您将获得该结果。
请注意,name === "[object Object]"
不为真。
alert( name === "[object Object]" ); // alerts "false"
alert( name.toString() === "[object Object]" ); // alerts "true"
阵列也是如此。 1,2,3
只是数组[1,2,3]
的字符串表示形式。
对于window.name
,它具有当前窗口的名称,因此将其更改为非字符串可能会导致意外行为:https://developer.mozilla.org/en/DOM/window.name