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 スタイル ガイドです。

ページの最後にある重要なポイントは次のとおりです。

一貫性を保つ。

コードを編集している場合は、数分かけて自分の周りのコードを見て、そのスタイルを判断してください。すべての算術演算子の前後にスペースを使用する場合は、あなたもそうする必要があります。コメントの周囲にハッシュ マークの小さなボックスがある場合は、コメントにもハッシュ マークの小さなボックスを配置します。

スタイル ガイドラインを持つことのポイントは、コーディングの共通語彙を持つことです。これにより、人々は、あなたがどのように言っているのかではなく、あなたが言っていることに集中できるようになります。ここではグローバル スタイルのルールを提示して、人々が語彙を理解できるようにしていますが、ローカル スタイルも重要です。ファイルに追加したコードが既存のコードと大幅に異なって見える場合、読者はそのコードを読むときにリズムを崩してしまいます。これを避けてください。

于 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()、すべての比較値をメモリから取得する必要があります。スイッチを使用すると、値が1回取得され、ジョブが実行されます。もちろん、この場合はスイッチの方が適しています。

  2. この場合、スイッチを使用する必要もありません。私が答えで述べたようにあなたは使うことができます。

于 2013-03-12T05:11:02.363 に答える