变量前面的感叹号在JavaScript中意味着什么?

Win*_*ers 18 javascript variables

我正在尝试通过浏览应用程序中的一些代码来学习JavaScript,并且!variable如果有条件,我会继续查看.例如:

if (!variable.onsubmit || (variable.onsubmit() != false)) {
Run Code Online (Sandbox Code Playgroud)

它是什么?如果变量是空的某种测试?

Ben*_*aum 45

!是JavaScript中的逻辑非运算符.

正式地

!expression 读作:

  • 采取expression并评估它.在你的情况下variable.onsubmit
  • 举例说明评估结果并将其转换为布尔值.在你的情况下,因为onsubmit它可能是一个函数,它意味着 - 如果函数为null或未定义 - 返回false,否则返回true.
  • 如果该评估为真,则返回false.否则返回true.

在你的情况下

在你的情况下,!variable.onsubmit如果没有定义函数(因此是假的),则返回true,否则返回false(因为定义了函数).

简单地说 - !variable意味着接受真理价值variable并否定它.

因此,如果变量是(或强制为假),if (!variable) {将输入if子句false

总共

if (!variable.onsubmit || (variable.onsubmit() != false)) {
Run Code Online (Sandbox Code Playgroud)

均值 - 检查是否variable.onsubmit已定义且真实(因此为真),然后检查调用是否onsubmit返回强制为真的结果.在一个短行中,它检查是否存在onsubmit或返回true.

下次,我如何找到这个?


Dav*_*ker 6

它是用于对变量进行真值测试的否定运算符。

var myVariable = 1;

if ( ! myVariable )
{
    // myVariable evaluates as false
}

if ( myVariable )
{
    // myVariable evaluates as true
}
Run Code Online (Sandbox Code Playgroud)