尝试一下常用数值直接调用toString()方法,发现 null undefined {} 直接调用该方法会报错。前面2个能理解,但是{}.toString()为何不能直接使用,需要显示转换为对象来调用该方法,比如({}).toString()。此时的显示结果是"[object Object]"。主要想知道:1.处在赋值操作右侧时的{},比如 var a = {};是一个什么样的东西。2.{} 与 [] 在创建时的区别,[]在申明时已经完成了对象创建操作。[].toString() 可以正常输出内容,证明此时的 [] 已经是一个完整的对象。多谢各位大神帮忙解惑。
1 回答
12345678_0001
TA贡献1802条经验 获得超5个赞
貌似在《你不知道的JS》里看到过,凭印象转述一下:
{在最左侧时,浏览器理解为代码块,如if(){} 这个{}包裹的代码块.
比如
结果就不一样。
[] + {} 是 []转为'', {}转为"[object Object]",
{} + [] 是 {}作为空代码块, []转为0
var a = {};{}这时是一个空对象
添加回答
举报
0/150
提交
取消
