【问题标题】:Stopping a JavaScript function when a certain condition is met满足特定条件时停止 JavaScript 函数
【发布时间】:2010-08-21 02:50:48
【问题描述】:

我找不到在满足给定条件时中途停止函数的推荐方法。我应该使用exitbreak 之类的东西吗?

我目前正在使用这个:

if ( x >= 10 ) { return; }  
// other conditions;

【问题讨论】:

    标签: javascript function exit breadcrumbs


    【解决方案1】:

    Return 是退出函数体的方式。您正在使用正确的方法。

    我想,根据您的应用程序的结构,您也可以使用 throw。这通常要求您对函数的调用包含在 try / catch 块中。

    【讨论】:

    • 感谢您的确认。谷歌搜索找不到这个答案。
    • @Wolle - 你会注意到我都将它列为 alternative 并且需要注意的是对函数的调用需要包装在 try / catch 块中。根据功能、项目范围和功能完成的内容,引发异常以退出可能是非常合适的。如果不深入了解 OP 的实现,就无法知道。不管怎样,我的回答是使用return,而不是throw
    • 抛出异常退出是一个非常可行的选择。例如,调用没有有效变量的函数将引发ReferenceError 异常。我在类中有 setter 函数,只能从 0100 取值,如果值超出该范围,我会抛出 RangeError 异常。异常意味着在发生函数未预料到的事情时停止流程。规则的例外
    【解决方案2】:

    为此使用return

    if(i==1) { 
        return; //stop the execution of function
    }
    
    //keep on going
    

    【讨论】:

    • 返回 false 仅在您期望布尔返回时才有意义,并且在其他情况下将返回 true。他可能会返回一个数组值,或者一个状态指示符,或者作为条件结果的结果,他在函数中执行了多远的提示。
    【解决方案3】:

    return 语句从函数内的任何位置退出函数:

    function something(x)
    {
        if (x >= 10)
            // this leaves the function if x is at least 10.
            return;
    
        // this message displays only if x is less than 10.
        alert ("x is less than 10!");
    }
    

    【讨论】:

      【解决方案4】:

      在你的主函数中使用try...catch 语句,当你想停止该函数时,只需使用:

      throw new Error("Stopping the function!");
      

      【讨论】:

      • 很好,但请仅在由于实际错误或缺少参数而停止功能时使用此功能,否则请使用return
      【解决方案5】:

      尝试使用 return 语句。它效果最好。满足条件时停止函数。

      function anything() {
          var get = document.getElementsByClassName("text ").value;
          if (get == null) {
              alert("Please put in your name");
          }
      
          return;
      
          var random = Math.floor(Math.random() * 100) + 1;
          console.log(random);
      }
      

      【讨论】:

        【解决方案6】:
        if (OK === guestList[3]) {
            alert("Welcome");
            script.stop;
        }
        

        【讨论】:

        • 我在弄乱我的代码时发现了这个。另外你不需要说脚本之前你可以说任何东西,但我喜欢说脚本,因为它很有意义。
        猜你喜欢
        • 2013-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多