为什么({} + {})=“ [object Object] [object Object]”?

好人

我已经测试了代码:

{}+{} = NaN;
({}+{}) = "[object Object][object Object]";

为什么添加()更改会导致结果?

TJ人群

{}+{}是一个后跟表达式第一个{}是块(就像您附加到if语句的类型),+{}是表达式。第一个{}是一个块,因为当解析器正在寻找一条语句并看到时{,它将解释它为一个块的开头。该块为空,什么也没做。处理完该块后,解析器将看到+并将其读取为一元+这将解析器转变为处理表达式。在表达式中,a{启动对象初始化器而不是块,因此a{}是对象初始化器。对象初始化程序创建一个对象,+然后尝试强制转换为数字get NaN

在中({}+{}),开头(将解析器转换为期望表达式而不是语句的模式。因此,它们()包含两个对象初始化器,它们之间具有二进制 +(例如,“加法”运算符,可以是算术运算或字符串连接)。二进制+运算符将尝试根据其操作数进行添加或连接。它将其操作数强制转换为基元,在这种情况下{},它们各自成为字符串"[object Object]"因此,最终得到"[object Object][object Object]",将它们串联在一起的结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么在JavaScript中使用Object()!= Object()?

来自分类Dev

为什么我的数组变成[object object]

来自分类Dev

为什么`Object() === new Object()` 等于`false`?

来自分类Dev

为什么Object.prototype.toString返回[object Object]

来自分类Dev

为什么[object Object]两次提到“ object”?

来自分类Dev

为什么Arrays.binarySearch(Object [],Object)需要Object args?

来自分类Dev

为什么<object>的类型是函数?

来自分类常见问题

为什么(object)0 ==(object)0与((object)0)。等于((object)0)不同?

来自分类Dev

为什么在JavaScript中{} + {}变成“ [object Object] [object Object]”,但是[] + []变成空字符串?

来自分类Dev

为什么Object.prototype instanceof Object为false?

来自分类Dev

为什么lodash中的_.pick(object,_.identity)返回空的Object?

来自分类Dev

为什么“ object .__ dict__是object .__ dict__”为假?

来自分类Dev

为什么lodash中的_.pick(object,_.identity)返回空的Object?

来自分类Dev

如果Object数组是Object,为什么String数组不是String

来自分类Dev

为什么我得到[object object]而不是JSON?

来自分类Dev

为什么type(object)返回<class'type'>而不是<class'object'>?

来自分类Dev

访问JSON数据后为什么会得到[object Object]?

来自分类Dev

为什么在 JavaScript 中 console.log() 输出 [object Object]?

来自分类Dev

为什么(object.fun = object.fun)()使用window却为什么(object.fun)()使用this的object对象呢?

来自分类Dev

为什么在JavaScript中typeof null是'object'?

来自分类Dev

为什么缺少object .__ getattr__?

来自分类Dev

为什么Object.clone()是Java原生的?

来自分类Dev

为什么Fixnum的object_id是奇数?

来自分类Dev

为什么Object.keys()和for ...不同?

来自分类Dev

为什么Object.keys比hasOwnProperty快?

来自分类Dev

为什么这里的类型是System.Object?

来自分类Dev

为什么Object类有静态块?

来自分类Dev

为什么object.create()静默失败?

来自分类Dev

为什么JavaScript原语不是Object的instanceof?

Related 相关文章

  1. 1

    为什么在JavaScript中使用Object()!= Object()?

  2. 2

    为什么我的数组变成[object object]

  3. 3

    为什么`Object() === new Object()` 等于`false`?

  4. 4

    为什么Object.prototype.toString返回[object Object]

  5. 5

    为什么[object Object]两次提到“ object”?

  6. 6

    为什么Arrays.binarySearch(Object [],Object)需要Object args?

  7. 7

    为什么<object>的类型是函数?

  8. 8

    为什么(object)0 ==(object)0与((object)0)。等于((object)0)不同?

  9. 9

    为什么在JavaScript中{} + {}变成“ [object Object] [object Object]”,但是[] + []变成空字符串?

  10. 10

    为什么Object.prototype instanceof Object为false?

  11. 11

    为什么lodash中的_.pick(object,_.identity)返回空的Object?

  12. 12

    为什么“ object .__ dict__是object .__ dict__”为假?

  13. 13

    为什么lodash中的_.pick(object,_.identity)返回空的Object?

  14. 14

    如果Object数组是Object,为什么String数组不是String

  15. 15

    为什么我得到[object object]而不是JSON?

  16. 16

    为什么type(object)返回<class'type'>而不是<class'object'>?

  17. 17

    访问JSON数据后为什么会得到[object Object]?

  18. 18

    为什么在 JavaScript 中 console.log() 输出 [object Object]?

  19. 19

    为什么(object.fun = object.fun)()使用window却为什么(object.fun)()使用this的object对象呢?

  20. 20

    为什么在JavaScript中typeof null是'object'?

  21. 21

    为什么缺少object .__ getattr__?

  22. 22

    为什么Object.clone()是Java原生的?

  23. 23

    为什么Fixnum的object_id是奇数?

  24. 24

    为什么Object.keys()和for ...不同?

  25. 25

    为什么Object.keys比hasOwnProperty快?

  26. 26

    为什么这里的类型是System.Object?

  27. 27

    为什么Object类有静态块?

  28. 28

    为什么object.create()静默失败?

  29. 29

    为什么JavaScript原语不是Object的instanceof?

热门标签

归档