繁体   English   中英

为什么js变量显示[object object]但console.log()有效?

[英]Why js variable show [object object] but console.log() works?

我有一些代码

var weibo = { weibo: { url: '//testurl.com', icon: 'fa fa-weibo' } }
var mail = { mail: { url: '//testurl.com', icon: 'fa fa-envelope' } }
var github = { github: { url: '//testurl.com', icon: 'fa fa-github' } }

var [key] = Object.keys(weibo)
var name = weibo[key]
console.log(weibo[key])

我想从weibo获取对象并存储到名称变量中

但是名称显示[object object]

在此处输入图片说明

我不使用[object Object]是什么意思的 alert (JavaScript)

key是一个字符串weibo 在此处输入图片说明

我只想将变量存储到名称中,为什么chrome dev tools显示[object object]

console.log()有效,它显示了正确的对象信息 在此处输入图片说明

更新,请参阅我的gif


这让我想了一会儿,结果发现浏览器中定义了一个window.name全局变量( MDN:Window.name )。

根据MDN: window.name将使用toString方法将所有值转换为它们的字符串表示形式。

toString应用于对象时,输出将为[object object]

因此,要么将您的代码包含在自己的范围内(可能在函数内),要么将您的name变量重命名。

采用

var key = Object.keys(weibo)
var name = key[0]

这是因为您已创建“ weibo”作为对象,并将其传递给原始数据类型引用“ name”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM