这两个代码片段之间有什么真正的区别吗?

时间:2014-09-05 14:39:19

标签: javascript

以下代码段有什么不同吗? 他们都工作,会比其他人更好或更干净吗?

someFunc(){

    var ret;                

    if(thisBoolean === true){                   
     ret =  some value

    }
    else{
       ret =  some other value        
    }
    return ret;  
}

someFunc(){

    if(thisBoolean === true){                   
     return some value

    }
    else{
      return some other value        
    }
}

4 个答案:

答案 0 :(得分:1)

这一切都取决于你的编码风格。 会完成

someFunc(){
  return thisBoolean ? 'some value' : 'some other value'
}

所以这一切都取决于你想要什么或如何编码。

答案 1 :(得分:1)

我个人会选择第二个;如果您想返回,则返回,很明显在返回之前不会进行进一步的更改。相比之下,您可以在ret上进行最终检查或转换。

唯一需要注意的是,当返回涉及您在两个分支中执行的某些操作时,在这种情况下,DRY会建议您遵循第一个模式。

人们对三元运算符各不相同,但我非常喜欢它的功能风格:

var someFunc = function(isSpecial) { 
      return isSpecial ? specialVal : ordinaryVal;
};

答案 2 :(得分:0)

他们将产生相同的输出。它们基本相同。

答案 3 :(得分:0)

它们将产生相同的输出但是,第一个只有一次返回将使您的调试变得容易。