【问题标题】:What does callback && callback() mean in javascript [duplicate]javascript中的回调&&回调()是什么意思[重复]
【发布时间】:2013-10-07 20:33:45
【问题描述】:

我在浏览一些 JS 代码时偶然发现了以下我不明白的行:

callback && callback();

这条线有什么作用?

【问题讨论】:

  • 哇.. 我想我很久没有这么快看到这么多答案了。
  • 这通常表明用谷歌搜索一下就可以完成这项工作。确实如此。
  • 遗憾的是,SO 代表系统不奖励欺骗猎杀,这有时比回答更有用。
  • @thg435 如果你看到一个实际的重复我会给你一个upvote :) 我不太同意isherwood 的建议。
  • @FritsvanCampen:哈哈,对,我盲目地信任他。 stackoverflow.com/questions/5049006/… 可能更合适。

标签: javascript


【解决方案1】:

这是一个简写的条件。

如果&& 的左侧为真值,则执行&& 右侧的任何内容。

此语句表示如果定义了回调并且为真(非 null、false 或 0),则执行它。

【讨论】:

    【解决方案2】:

    它说,如果callback 不是假的,则调用callback。所以&&短路如果左边是假的,那么右边会被忽略。但是,如果左侧为真,则评估右侧,因此它相当于:

    if(callback) {
      callback();
    }
    

    【讨论】:

      【解决方案3】:

      它检查callback 的评估结果是真还是假。这与以下内容相同:

      if (callback) {
        callback();
      }
      

      如果它评估为真,则标识符被视为一个函数,然后被调用。

      如果评估为 false,callback() 将不会执行。

      【讨论】:

        【解决方案4】:

        首先,它检查以确保定义了callback(更准确地说,它是一个真实值)。然后,如果是,它会调用该函数。

        这在定义一个接受可选回调的函数时很有用。这是检查是否确实给出了回调的简写方式。

        【讨论】:

          【解决方案5】:

          && 计算左侧,如果为真则计算右侧,如果为真则返回。

          由于整个表达式的左侧没有任何内容,这相当于:

          if (callback) {
              callback();
          }
          

          【讨论】:

            【解决方案6】:

            它检查是否定义了回调函数。如果是,则执行回调函数。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2019-01-25
              • 1970-01-01
              • 2023-03-27
              • 2019-12-25
              • 2013-09-28
              • 2019-12-20
              • 2019-02-26
              相关资源
              最近更新 更多