【问题标题】:Javascript Inline Returns [closed]Javascript内联返回[关闭]
【发布时间】:2014-08-30 04:25:25
【问题描述】:

我们正在实施一个新的 Javascript 框架 (http://app.igaro.com),作者在其中内联了他的许多返回语句。以https://github.com/igaro/app/blob/master/compile/js/core.language.js为例。

我的老板告诉我不要遵循这种方法,但不能给出这样做的理由,除了他更喜欢扩展代码的外观。哪个被认为是最佳实践?

if (dosomething) return 30;
if (trythis) return 20;
return false;

-v-

if (dosomething) {
 return 30;
} else if (trythis) {
 return 20;
} else {
 return false;
}

【问题讨论】:

  • 使用多个 return 语句有时会使函数难以阅读,请参阅这篇文章了解更多信息:stackoverflow.com/questions/36707/…
  • 不知道你们老板对 JSON 单行字怎么看...

标签: javascript function inline


【解决方案1】:

这里有三个不同的问题:

  1. 是否应该始终将if 语句的主体放在大括号中?

  2. 你应该从函数的中间返回吗?

  3. 您需要在返回的if 之后使用else 吗?

对于 (1),我会说“是”有一个强烈的共识,而 jslint/hint 会强制执行。

对于(2),我个人的看法是,如果你想快速退出一个函数,你应该这样做。这种技术还可以减少过度嵌套。

对于(3),似乎没有意义。

【讨论】:

    【解决方案2】:

    这归结为您作为一个团队同意的编码标准。除此之外没有最佳实践。

    【讨论】:

    • 完全正确 - 有些公司需要特定的约定,有些公司很少关心,有些公司在规则之前需要可读性。
    【解决方案3】:

    嗯,第二个确实是您应该遵循的。省略括号会导致混淆。

    例如,如果代码是这样缩进的:

    if(condition)
      var three = 1 + 2;
      return three;
    

    人们可能期望它是:

    if(condition) {
       var three = 1 + 2;
       return three;
    }
    

    当它编译成这样时:

    if(condition){
       var three = 1 +2;
    }
    return three; // Error!
    

    Douglas Crockford 在他的书 Javascript: The Good Parts 中说过

    经验表明这种形式更有弹性。

    现在由你决定是否遵循最优秀的 javascript 程序员的话。

    【讨论】:

    • 在视觉上这是一个很好的观点。我所做的大多数编辑首先需要我将其他人的代码隔开才能完成,这样我才能首先理解它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多