在Javascript中是否有正确的间距方式?

时间:2013-03-12 04:55:27

标签: javascript

在初步技术访谈中,我被要求在Javascript中编写简单计算器功能。我的代码可以通过,但他评论了我的糟糕的间距。我写了这样的话:

 var calc = function(num1, num2, operand){       //function(...  VS function (...
      if(operand === 'add'){                     
           return num1 + num2;
      } else if(operand === 'multiply'){         // if(...
           return num1 * num2;                            
      } else if (operand === 'subtract'){        // if (... 
           return num1 - num2;
      } else {
           console.log("Not a valid operand");
      };
 };

我是Javascript的初学者,希望学习并保持良好的编码习惯。我理解无论我的间距是否不一致,上面的函数都会运行,但是有没有正确的方法来区分Javascript控制循环?

任何建议或编码示例都会有所帮助!谢谢!

3 个答案:

答案 0 :(得分:8)

他可能认为这很糟糕,因为你写的风格与他不同。

代码风格的一个很好的资源是Google JavaScript Style Guide

页面末尾的关键点是:

  

是一致的。

     

如果您正在编辑代码,请花几分钟时间查看代码   你并确定它的风格。如果他们在他们周围使用空间   算术运算符,你也应该。如果他们的评论很少   他们周围的哈希标记框,让你的评论有点小盒子   他们周围也有哈希标记。

     

拥有风格指南的关键是要有一个共同的词汇表   编码让人们可以专注于你所说的而不是   你是怎么说的。我们在这里提出全球风格规则   知道词汇,但当地的风格也很重要。如果你编码   添加到文件看起来与现有代码截然不同   在它周围,当他们去阅读时,它会让读者摆脱他们的节奏   它。避免这种情况。

答案 1 :(得分:3)

这完全是一个意见问题。您的代码是完全可以接受的 - 在某些地方略有不一致,但仍然有效。我个人会写这样的东西:

var calc = function (num1, num2, operand) {
  if (operand === 'add') {
    return num1 + num2;
  } else if (operand === 'multiply') {
    return num1 * num2;                            
  } else if (operand === 'subtract') {
    return num1 - num2;
  } else {
    console.log("Not a valid operand");
  }
};

好吧,我实际上可能会使用switch语句,但无论如何......

以下是一些您可能会觉得有用的风格指南:

当然,这些都不是正确答案,但它们都可以帮助您保持代码清洁和可维护。

答案 2 :(得分:0)

这对你有用吗?

var calc = function(num1, num2, operand){
   return ( new Function( 'return ' + num1 + operand + num2 ) )();
};

正如其他人已经提到的,JavaScript中没有像Python或F#这样的空格规则。由于以下原因,他可能会说间隔不好

  1. 如果使用if() else(),则必须从内存中检索每个比较值,如果使用了switch,则将检索一次该值并执行该任务。在这种情况下,Ofcourse Switch更好。

  2. 在这种情况下,也不需要使用开关。您可以按我在回答中提到的那样使用。