JS条件文最適化
2189 ワード
JS条件語句最適化の妙技
JavaScript条件語句は私達の普段の開発には避けられないものですが、多くの場合、コードの書き方がよくないので、最適化できるところを見てみます.
含めるかどうか
私達はよくある変数がある値に等しいと判断して、このようなコードを書きます.
コードを先に見ます
キーオブジェクト
switch…caseはみなさんもよく使うフレーズです.
パラメータのデフォルト値
方法のパラメーターは空です.私たちはよく処理しなければなりません.多くの場合は標準値をあげます.
JavaScript条件語句は私達の普段の開発には避けられないものですが、多くの場合、コードの書き方がよくないので、最適化できるところを見てみます.
含めるかどうか
私達はよくある変数がある値に等しいと判断して、このようなコードを書きます.
function sayHi(name){
if(name=='tom'||name=='hxh'||name=='lmly'){
return 'hello'
}
}
これ以上値を加えると、どんどん太って見えますが、その変数がある値の範囲にあるかどうかを判断します.function sayHi(name){
let names=['tom','hxh','lmly'];
if(names.indexOf(name)>-1){
return 'hello'
}
}
合理的に見えますか?私たちは共通の論理を提示しました.これからはnamesという配列だけを維持すればいいです.もちろんincludes()も使えます.if(names.includes(name)){
return 'hello'
}
早めに帰るコードを先に見ます
function sayHi(name){
if(name){
if(name=='hxh'){
return 'hello';
}
}else{
return 'no';
}
}
ここで私達は先にnameが存在するかどうかを判断しました.そこで入れ子ifが発生しました.しかしもし私達が最初からnameが存在しないなら、直接に戻ってきます.function sayHi(name){
if(!name){
return 'no';
}
if(name=='hxh'){
return 'hello';
}
}
コードがネスト層レベルより少なくなり、可読性が向上したことを発見します.キーオブジェクト
switch…caseはみなさんもよく使うフレーズです.
function sayHi(name){
let str="";
switch(name){
case 'tom':{ str='hello1'; } break;
case 'hxh':{ str='hello2'; } break;
case 'lucy':{ str='hello3'; } break;
default :{str='no'; }
}
return str;
}
ちょっと詳しく見ると、相手のキーとよく似ていますので、次のようにします.function sayHi(name){
return {
'tom':'hello1',
'hxh':'hello2',
'lucy':'hello3',
}[name]
}
コードは簡潔が多いですか?パラメータのデフォルト値
方法のパラメーターは空です.私たちはよく処理しなければなりません.多くの場合は標準値をあげます.
function sayHi(name){
if(!name){
name='tom'
}
}
この時はコードを簡略化するために、124124を使うことができます.function sayHi(name){
name=name||'tom';
}
あなたのコードが環境サポートES 6を実行すると、パラメータのデフォルト文法がそのまま使用できます.function sayHi(name='tom'){
return name;
}