【问题标题】:Brackets in Functions Javascript函数 Javascript 中的括号
【发布时间】:2013-07-02 18:36:36
【问题描述】:

我无法理解 Javascript 中“for”循环和“if”语句中括号的用法。我在 Javascript 中看到有括号和没有括号的语法。有人告诉我,通常应该使用括号。有人能清楚地解释我们什么时候应该为“for”和“if”循环使用括号吗?

function range(upto) {
  var result = [];
  for (var i = 0; i <= upto; i++)
    result[i] = i;
  return result;
}
console.log(range(15));

结果是

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

这是与括号的对比:

function range(upto) {
  var result = [];
  for (var i = 0; i <= upto; i++) {
    result[i] = i;
  };
    return result;

}
console.log(range(15));

【问题讨论】:

  • 问题不再清楚,因为它们产生相同的结果。问题是什么?
  • 问题是括号何时应该用于“for 循环”和“if 语句”。它已经在下面得到了很好的回答。

标签: javascript if-statement for-loop brackets


【解决方案1】:

for 循环应用于唯一语句时,您可以省略括号。

如果您希望它适用于更多语句,则必须使用它。更准确地说,for 循环始终适用于语句但 the brackets build a block which is a statement

添加括号,当只有一个语句时,不会破坏代码并且通常会使其更具可读性。事实上,大多数编码人员不会在没有括号的情况下进入 for 循环中的下一行。我个人会替换

for (var i = 0; i <= upto; i++)
    result[i] = i;

for (var i = 0; i <= upto; i++) result[i] = i;

for (var i = 0; i <= upto; i++) {
    result[i] = i;
}

【讨论】:

  • 两个 sn-ps 看起来和我一模一样。
  • @thg435 你是对的。但是问题被编辑了,我想我确实读到了一些不同的东西,甚至还有第二个代码的输出与一个元素数组......
  • 是的,我之前编辑过,愚蠢的错误。很抱歉造成混乱
【解决方案2】:

没有括号,只有下一条语句受到影响,而括号内的所有内容都会受到影响。

要在循环中添加括号并使其工作完全相同,只需在下一条语句周围添加它们:

function range(upto) {
    var result = [];
    for (var i = 0; i <= upto; i++) {
        result[i] = i;
    }
    return result;
}

【讨论】:

    【解决方案3】:

    括号允许您将更多语句添加到一个块中。 如果我修改位以显示结果

    function range(upto) {
      var result = [];
      for (var i = 0; i <= upto; i++) {
        result[i] = i;
        result[i] = result[i]*2
      }
        return result;
    
    }
    console.log(range(15));
    

    结果将是

    [2,4,6,8,10,12,14,16,18,20,22,24,26,28,30]
    

    但是,没有括号,

    function range(upto) {
          var result = [];
          for (var i = 0; i <= upto; i++) 
            result[i] = i;
            result[i] = result[i]*2
    
            return result;
    
        }
        console.log(range(15));
    

    结果会是这样的

    [1,2,3,4,5,6,7,8,9,10,11,12,13,14,30]
    

    *作为菜鸟程序员,我认为它可能会由于未声明的变量而失败

    【讨论】:

      猜你喜欢
      • 2019-02-16
      • 2011-10-01
      • 1970-01-01
      • 2011-05-08
      • 1970-01-01
      • 2020-11-13
      • 1970-01-01
      • 2014-03-01
      • 1970-01-01
      相关资源
      最近更新 更多