在条件外部和内部使用`return`有什么区别?

时间:2018-02-07 11:06:25

标签: javascript angular typescript

在else条件之外和else条件之内使用return有什么区别?

我知道最好的代码没有使用else,我知道两者的做法相同。有差异还是有优势?



       
         function f1() {
            if (1 == 1) {
                return true;
            } else {
                return false;
            }
        }

function f2() {
            if (1 !== 1) {
                return true;
            } else {
                return false;
            }
            return false
        }
        
        console.log(f1());
        console.log(f2());




3 个答案:

答案 0 :(得分:1)

如果您在块代码中有if语句,并且在returnif块中都包含else。它的意思是if块将执行,而return来自方法或else块将执行return。下面的其他语句将不会执行,编译器可能会给你一些错误,如

  

无法达成声明

例如:

SaveVersionMainScreen() {
        let element = this.commonValidation(true);
        if (element) {            
            return false;
        }
        else{
          return true;
        }

// Below  statements will never run

          var a=2;
          var b=3;
          var c=4;
          return true;
         }

答案 1 :(得分:1)

与您之前的问题无关,只与此相关:

在方法:2中,最后一个return语句(即return true;)实际上是无用的。因为SaveVersionMainScreen()中的最后一行不会被执行,因为存在ifelse两个条件。哪个应该占所有情况。

答案 2 :(得分:1)

完全改变你问题的方法。无论如何,现在离开我的答案。  您的版本2是不好的做法,代码不能像Java那样使用严格的语言,因为您有一个无法访问的返回语句。至于你的测试从你的函数中删除else应该为你解决,但问题似乎是测试而不是你的代码。

SaveVersionMainScreen() {
    let element = this.commonValidation(true);
    if (element) {            
        return false;
    }
  return true;
 }