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