4

在一次初步的技术面试中,我被要求用 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 控制循环的方法?

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

4

3 回答 3

8

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

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

页面末尾的关键点说:

始终如一。

如果您正在编辑代码,请花几分钟时间查看您周围的代码并确定其样式。如果他们在所有算术运算符周围使用空格,你也应该这样做。如果他们的评论周围有小框哈希标记,请让您的评论周围也有小框哈希标记。

制定风格指南的重点是要有一个通用的编码词汇,这样人们就可以专注于你在说什么,而不是你怎么说。我们在这里介绍全局样式规则,以便人们了解词汇,但本地样式也很重要。如果你添加到一个文件中的代码看起来与它周围的现有代码完全不同,那么当他们去阅读它时,它会让读者失去他们的节奏。避免这种情况。

于 2013-03-12T04:57:58.170 回答
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 语句,但无论如何......

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

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

于 2013-03-12T05:02:44.160 回答
0

这对你有用吗?

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

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

  1. 如果使用if() else(),则必须从内存中检索每个比较值,如果使用 switch,则该值将被检索一次并完成工作。在这种情况下,当然 Switch 更好。

  2. 在这种情况下,也不需要使用 switch。你可以使用我在回答中提到的。

于 2013-03-12T05:11:02.363 回答