我遇到了无法解释的有效JavaScript代码。
例如:

  • +[]===0
  • -[]===0
  • ~[]===-1
  • ~-~[]===-2
  • ~-~-~-~-~[]===-5
  • ~-~-~-~-~[]+~[]===-6
  • ~+~[]===0
  • ~+~+~[]===-1
  • ~+~+~+~[]===0

  • 您能解释这些表达式的逻辑吗?

    最佳答案

    []是一个空数组对象,因此:

    + []:强制空数组为正整数,也就是0,即===等于0
    -[]:强制空数组为负整数,也就是0,即===等于0
    〜[]:按位非空数组,其结果为-1,即===到-1
    〜-〜[]:否定的NOTTED空数组的按位NOT:~-(-1) -> ~1 -> -2
    等等...

    09-30 13:12