问题:
{} + []
- {} + [] 结果应该是 0
- console.log({} + []) 结果应该是 object object
两个 {} 的语义不一样,前者被解析成 {}; +[]; 后者 {} 为对象.
操作符,针对非 Number 的处理内部调用 ToPrimary() 函数, {} 和 [] 都执行了自身的 toString 函数
({} + [])
({}) + []
这些表达式中,{}都被当做对象来解析,而不是 作用块
问题:
{} + []
两个 {} 的语义不一样,前者被解析成 {}; +[]; 后者 {} 为对象.
操作符,针对非 Number 的处理内部调用 ToPrimary() 函数, {} 和 [] 都执行了自身的 toString 函数
({} + [])
({}) + []
这些表达式中,{}都被当做对象来解析,而不是 作用块