1

例如,

var name = [1,2,3]  // name === "1,2,3"
name = {"a":"b"}  // name === "[object Object]"

我不明白这种情况。

javascript 上“name”或“window.name”的标识是什么?

添加:

我使用了 Chrome 的开发工具

4

1 回答 1

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只是 array 的字符串表示形式[1,2,3]


至于window.name,它具有当前窗口的名称,因此将其更改为非字符串可能会导致意外行为:https ://developer.mozilla.org/en/DOM/window.name

于 2012-07-21T10:51:20.760 回答