为了账号安全,请及时绑定邮箱和手机立即绑定

在浏览器环境中,{}.toString()为何不能正确运行

在浏览器环境中,{}.toString()为何不能正确运行

慕田峪7331174 2019-02-15 19:15:06
尝试一下常用数值直接调用toString()方法,发现 null undefined {} 直接调用该方法会报错。前面2个能理解,但是{}.toString()为何不能直接使用,需要显示转换为对象来调用该方法,比如({}).toString()。此时的显示结果是"[object Object]"。主要想知道:1.处在赋值操作右侧时的{},比如 var a = {};是一个什么样的东西。2.{} 与 [] 在创建时的区别,[]在申明时已经完成了对象创建操作。[].toString() 可以正常输出内容,证明此时的 [] 已经是一个完整的对象。多谢各位大神帮忙解惑。
查看完整描述

1 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

貌似在《你不知道的JS》里看到过,凭印象转述一下:
{在最左侧时,浏览器理解为代码块,如if(){} 这个{}包裹的代码块.
比如
https://img1.sycdn.imooc.com//5c6ce23f0001012001540098.jpg

结果就不一样。
[] + {} 是 []转为'', {}转为"[object Object]",
{} + [] 是 {}作为空代码块, []转为0

var a = {};{}这时是一个空对象


查看完整回答
反对 回复 2019-02-20
  • 1 回答
  • 0 关注
  • 359 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号