我在网上找到了一个有趣的JavaScript问题。 +!{}[0]
是什么意思?
答案真的让我感到惊讶,结果变成了1
。
现在,我试图理解为什么这种语法会导致这种情况。
这就是为什么我试图将其分解!{}
返回false
false[0]
返回undefined
+false[0]
返回NaN
所以我不明白为什么上面的表达式会返回1.任何理论?
最佳答案
您具有运算符错误的优先级(MDN)。它是:{}[0]
返回undefined
!undefined
返回true
+true
返回1