如果(“!”布尔函数())

If ("!" BooleanFunction())

假设您有一个 function booleanFunction(param),有时 returns true 有时 returns false.

以下条件如何工作?

if (! booleanFunction(param)){
  ...
}

它调用函数,然后将否定运算符 (!) 应用于函数 returns 的结果。所以如果函数returnstrue,条件为假(!truefalse);如果函数 returns false,则条件为真(!falsetrue)。 (作为 side-effect,它还会将 truthyfalsy 值强制转换为 falsetrue,分别。(Falsy 值是 0""NaNundefinednull,当然还有 false; 真实 价值观就是一切。)

非运算符:

  • 将 RHS 上的任何内容隐式转换为布尔值
  • 反转它(将 true 转换为 false,反之亦然)

然后 if 语句会测试反转后的值是 true 还是 false 以及是否 运行 以下代码块。