JavaScriptのベストプラクティス-リターン、スコープ、if文


アマゾンで私の本をチェックしてくださいhttps://www.amazon.com/John-Au-Yeung/e/B08FT5NT62
今すぐ私の電子メールリストを購読http://jauyeung.net/subscribe/
JavaScriptは非常に寛大な言語です.実行中のコードを書くのは簡単ですが、間違いがあります.
この記事では、ブロックスコープ変数を使用して、特定のコールバックの値を返しますif ステートメント、および明確に戻る.

コールバックの値をarray


JavaScriptの配列メソッドの多くmap , from , every , some , reduce , find , findIndex , reduceRight , filter , and sort , コールバックを取る.
渡されるコールバックは、これらのメソッドが適切な値を返すことができるようにいくつかの値を返す必要があります.たとえば、次のコードは役に立たないかもしれません.
const arr = [1, 2, 3];
const mapped = arr.map(() => {});
それから、私たちはmapped is [undefined, undefined, undefined] . それは、我々が欲しいものでないでしょう.したがって、これらの配列メソッドが予期しない何かを得ないように値を返すコールバックを確認する必要があります.
私たちが100 %確実でない限り、値を返さないコールバックを持つべきではありません.

ブロックスコープ変数を使用する


我々が使うならばvar 変数を宣言するには、ブロックをスコープしているかのように扱う必要があります.
例えば、次のように書くことができます.foo ログtrue 我々が予想したように、混乱は我々が宣言したということですvar foo 2倍にif ブロック.
我々は治療すべきvar 混乱を減らすためにブロックスコープ変数のように、代わりに書く必要があります.
いっそのこと、我々は使用する必要がありますlet ブロックスコープ変数let のように、どこにでも変数を置くことはできませんvar .

クラスメソッドは


インスタンスメソッドthis JavaScriptクラスで.さもなければ、インスタンスメソッドである点がありません.我々が参照を必要としないならばthis クラスメソッドでは、静的メソッドである必要があります.
例えば、
The bar 参照しないのでインスタンスメソッドであるべきではありませんthis ○○.代わりに、次のように静的メソッドを作成します.

タイトル(和文) 1個のCHERコードによる線形独立経路の制限


我々はあまりにも多くのすべきではないelse if 任意のブロックif 複雑さを減らす声明.コードを読みやすくするために、私たちはif ステートメントを取ることができます.
例えば、以下のように書くことができます.
我々は、ケースの削減を検討する必要がありますif 文.
写真でRod Long on Unsplash .

返り値は値を指定するか、


JavaScriptでreturn ステートメントはundefined 複数の方法で.return 後に何もないundefined . return with void アフター後と式void も返すundefined .return with undefined その後もundefined .
我々は何も戻ってはならないと考えなければならないundefined または明示的に私たちが戻るしようとしているかをクリアしようとしています.
以下のように書く:
const bar = () => {
  return;
}
または
const bar = () => {
  return 1;
}
または
const bar = () => {
  return undefined;
}
The void 演算子はほとんど使用されないので、ほとんどの開発者はそれに精通していません.その使用も制限されます.したがって、しばしば使用されない.

結論


多くの配列メソッドは値を返すべきコールバックを取る.インスタンスメソッドmap , reduce , filter , などを返します.
クラスインスタンスメソッドthis . そうでなければ、静的メソッドでなければなりません.if 文は複雑すぎてはいけません.パスの数を最小限に保つ.
最後にreturn を使用するのではなく値を返すべきである.void 演算子.