我遇到了无法解释的有效JavaScript代码。
例如:
+[]===0
-[]===0
~[]===-1
~-~[]===-2
~-~-~-~-~[]===-5
~-~-~-~-~[]+~[]===-6
~+~[]===0
~+~+~[]===-1
~+~+~+~[]===0
您能解释这些表达式的逻辑吗?
最佳答案
[]
是一个空数组对象,因此:
+ []:强制空数组为正整数,也就是0,即===等于0
-[]:强制空数组为负整数,也就是0,即===等于0
〜[]:按位非空数组,其结果为-1,即===到-1
〜-〜[]:否定的NOTTED空数组的按位NOT:~-(-1) -> ~1 -> -2
等等...