试试这个,打开控制台:
{} + 1
> 1
和
({}) + 1
> "[object Object]1"`
那鸭子在那里发生了什么?添加了哪些额外括号?
答案 0 :(得分:11)
{} + 1
被读作"空代码块" + 1
({}) + 1
是"对象" + 1
例如,请查看仅{}
和({})
之间的区别。至于代码块是什么:
{
// any code here is valid, this is an anonymous block
}
{
何时定义代码块与对象?如果您与函数语句与函数表达式的规则相似,那么相信在这种情况下它们完全相同:
{
位于一行的开头,那么它就是一个代码块