Javascript 在If/Else中,您是否应该使用空白返回退出?

Javascript 在If/Else中,您是否应该使用空白返回退出?,javascript,angularjs,return,return-type,Javascript,Angularjs,Return,Return Type,/*更新/ 我同意检查newVal是否存在的答案。。。但是如果你不得不选择其中一个选项,那就是 邪恶? 我正在浏览一个教程,看到了下面使用的代码#1。我相信我有这个权利。。。如果传递了newVal更新数据库,则会发生什么情况。如果!不退出功能。我列出了我想到的变化。。。我的问题是什么是最好的使用,为什么或者有更好的方法没有列出 我正在做的教程是先将ng model message.text设置为数据库值,然后使用watch更新该值。这个我相信,newVal是在输入值之前阻止它更新。直接引用:“确

/*更新/

我同意检查
newVal
是否存在的答案。。。但是如果你不得不选择其中一个选项,那就是 邪恶?

我正在浏览一个教程,看到了下面使用的代码#1。我相信我有这个权利。。。如果传递了
newVal
更新数据库,则会发生什么情况。如果!不退出功能。我列出了我想到的变化。。。我的问题是什么是最好的使用,为什么或者有更好的方法没有列出

我正在做的教程是先将ng model message.text设置为数据库值,然后使用watch更新该值。这个我相信,newVal是在输入值之前阻止它更新。直接引用:“确保新值不是未定义的,因为当页面加载新值时,将显示未定义的值。”

  • 如果返回为空+没有其他
  • 如果返回为空,则返回+else
  • 如果没有返回,请使用else
  • 如果没有回报,就没有其他东西——我认为这是行不通的

  • 如果语句在可能的情况下使用肯定的话,那么就不会那么混乱了

    $scope.$watch('message.text', function(newVal) {
      if(newVal) {
        childRef.update({
          text: newVal
        });
      }
    });
    
    我将您的示例解释为:

    如果不是newVal,什么也不做,如果不是newVal,做点什么

    而我将我的示例解释为:

    如果newVal做某事

    更容易理解

    ============================


    关于是否使用退货。这是不必要的,因为javascript将默认为
    返回未定义

    如果语句在可能的情况下应该使用肯定词,那么就不那么容易混淆了

    $scope.$watch('message.text', function(newVal) {
      if(newVal) {
        childRef.update({
          text: newVal
        });
      }
    });
    
    我将您的示例解释为:

    如果不是newVal,什么也不做,如果不是newVal,做点什么

    而我将我的示例解释为:

    如果newVal做某事

    更容易理解

    ============================

    关于是否使用退货。这是不必要的,因为javascript将默认为
    返回未定义

    您还可以执行以下操作:

    $scope.$watch('message.text', function(newVal){
      if (newVal) {
        childRef.update({
          text: newVal
        });
      }
    });
    
    这对我来说是最清楚的

    在我看来,第一个只是“跳出”函数是一个糟糕的做法。我总是将代码的其余部分放在else分支中,因此代码更加结构化,很明显,代码的其余部分也是有条件的。这与函数编程密切相关。

    您还可以执行以下操作:

    $scope.$watch('message.text', function(newVal){
      if (newVal) {
        childRef.update({
          text: newVal
        });
      }
    });
    
    这对我来说是最清楚的

    在我看来,第一个只是“跳出”函数是一个糟糕的做法。我总是将代码的其余部分放在else分支中,因此代码更加结构化,很明显,代码的其余部分也是有条件的。这与函数编程密切相关。

    甚至更短

    $scope.$watch('message.text', function(newVal) {
        newVal && childRef.update({
            text: newVal
        });
    });
    
    为了说明这一点,我使用短路返回(s)id进行了多次比较

    但是这个

    if (!newVal) {
        return;
    } else {
        // do something
    }
    
    没有必要,因为返回结束继续。这样更好

    if (!newVal) {
        return;
    }
    // do something
    
    甚至更短

    $scope.$watch('message.text', function(newVal) {
        newVal && childRef.update({
            text: newVal
        });
    });
    
    为了说明这一点,我使用短路返回(s)id进行了多次比较

    但是这个

    if (!newVal) {
        return;
    } else {
        // do something
    }
    
    没有必要,因为返回结束继续。这样更好

    if (!newVal) {
        return;
    }
    // do something
    
    如果必须选择一个,最好的是:

    $scope.$watch('message.text', function(newVal){
        if (!newVal) {
        } else {
            childRef.update({
                text: newVal
            });
        }
    });
    
    我会说,如果在一个分支中使用return,那么在另一个分支中也使用return。纯粹的
    返回语句感觉有点无用。如果您希望您的代码返回某些内容,那么您应该在每个分支中写入
    return
    s,如果您不返回任何内容,那么我宁愿保留所有
    return
    s。如果您必须选择一个,最好的是:

    $scope.$watch('message.text', function(newVal){
        if (!newVal) {
        } else {
            childRef.update({
                text: newVal
            });
        }
    });
    

    我会说,如果在一个分支中使用return,那么在另一个分支中也使用return。纯粹的
    返回语句感觉有点无用。如果您希望代码返回某些内容,那么您应该在每个分支中写入
    return
    s,如果您不返回任何内容,那么我宁愿保留所有
    return
    s。

    我不确定我是否理解这个问题。为什么不使用if(newVal){childRef…}?@LucasCordina我正在做的教程使用了!newVal先将ng model message.text设置为数据库值,然后使用watch更新该值。这个我相信,newVal是在输入值之前阻止它更新。我只是想知道你是否应该在其他人身上使用退货。我不确定我是否理解这个问题。为什么不使用if(newVal){childRef…}?@LucasCordina我正在做的教程使用了!newVal先将ng model message.text设置为数据库值,然后使用watch更新该值。这个我相信,newVal是在输入值之前阻止它更新。我只是想知道你是否应该使用其他人的回报。我完全同意你的答案。。。但是如果你必须选择其中一个选项,哪一个是较少的邪恶?我完全同意你的答案。。。但是,如果你不得不选择其中一个选项,哪一个是较少的邪恶?