小伙伴的提问{}+1是咋回事
这个问题好玩哈
他说正常如果我们用 1 + {}
结果肯定是 1Object
其实就相当于做了一个字符串拼接
把这个大括号当成了空的object
但是呢按照这个逻辑
大家看我们反过来用大块加一
结果就变成"1"了
真的很奇怪啊
而且呢
他发现如果我们用小括号把它扩上
他又可以了
其实原因很简单啊
就是在这种情况下
js的解析器
会把这个大括号当成一个空的代码段
我这样写就明白啊
就随便写点: a = 'xiaoshan'
然后呢大家看
就像是这样
所以呢像刚才这样写呢
就相当于我们写了一个 "+1"
结果就是
那为什么用小括号扩上就可以呢
因为小括号扩上
他就不会把里面大括号
当成一个空的代码段了
他其实就是一个空的object了
甚至呢我们把它这样扩上
他也会把它整体当成一个二元运算
那为什么反过来 1 + {} 可以呢
其实也是一样的
因为这种情况
如果再把大括号当成一个空的代码段
那么"1 +"就不是一个完整的表达式了
所以
他会默认把这个大括号当成一个object
最后更新于
这有帮助吗?