1. 短絡や条件文の代わりにデフォルトのパラメータを使用する通常、デフォルト引数は短絡よりも簡潔です。 関数 SomeMethod(paramThatCanBeUndefined) { const localValue = paramThatCanBeUndefined || "デフォルト値"; コンソール.log(ローカル値) // ... } SomeMethod() // デフォルト値 SomeMethod("SomeValue") // SomeValue 次のことを試してください。 関数SomeMethod( console.log(未定義の可能性があるパラメータ) // ... } SomeMethod() // デフォルト値 SomeMethod("SomeValue") // SomeValue ステートメント: ''、"、false、null、0、NaN などの偽の値はデフォルト値に置き換えられません。 function SomeMethod(paramThatCanBeUndefined = "デフォルト値") { console.log(未定義の可能性があるパラメータ) // ... } SomeMethod(null) // デフォルト値は設定されず、代わりにnullが設定されます SomeMethod("SomeValue") // SomeValue 2. 複数の条件の処理const Conditions = ["条件 2","条件文字列 2"]; いくつかの関数(str){ if(str.includes("someValue1") || str.includes("someValue2")){ 真を返す }それ以外{ 偽を返す } } これをよりきれいに行う方法は次のとおりです。 いくつかの関数(str){ const 条件 = ["someValue1","someValue2"]; 条件.some(condition=>str.includes(condition)) を返します。 } 3. スイッチを動的なキーと値のペア(オブジェクトリテラルなど)に置き換えるスイッチ バージョン (またはスイッチを if/else に置き換えます): 定数UserRole = { 管理者: 「管理者」、 GENERAL_USER: 「一般ユーザー」、 SUPER_ADMIN: 「スーパー管理者」、 }; 関数 getRoute(userRole = "デフォルトロール"){ スイッチ(ユーザーロール){ UserRole.ADMINの場合: 「/admin」を返す UserRole.GENERAL_USERの場合: 「/GENERAL_USER」を返す UserRole.SUPER_ADMINの場合: 「/superadmin」を返す デフォルト: 戻る "/" } } console.log(getRoute(UserRole.ADMIN)) // "/admin" を返す console.log(getRoute("Anything")) // デフォルトパスを返す console.log(getRoute()) // デフォルトパスを返す console.log(getRoute(null)) // デフォルトパスを返す // 新しいケースが到着した場合 // switch の代わりに if else を考えることもできます 動的キーと値のペアのバージョン: 定数UserRole = { 管理者: 「管理者」、 GENERAL_USER: 「一般ユーザー」、 SUPER_ADMIN: 「スーパー管理者」、 }; 関数 getRoute(userRole = "デフォルトロール"){ 定数appRoute = { [UserRole.ADMIN]: "/admin", [UserRole.GENERAL_USER]: "/user", [UserRole.SUPER_ADMIN]: "/スーパー管理者" }; return appRoute[userRole] || "デフォルトパス"; } console.log(getRoute(UserRole.ADMIN)) // "/admin" を返す console.log(getRoute("Anything")) // デフォルトパスを返す console.log(getRoute()) // デフォルトパスを返す console.log(getRoute(null)) // デフォルトパスを返す // ここでは switch/if-else は不要です。 // さらなる拡張が容易 4. 関数パラメータが多すぎないようにする関数 myFunction(従業員名、役職、年数、専攻){ `${employeeName} は ${jobTitle} として働いており、${majorExp} で ${yrExp} 年の経験があります` を返します } //出力は、ジョンがプロジェクト管理で12年の経験を持つプロジェクトマネージャーとして働いているようなものになります // 次のように呼び出すことができます console.log(myFunction("John","プロジェクト マネージャー",12,"プロジェクト管理")) // ***** 問題は ***** // 「クリーンコード」原則違反 // パラメータの順序付けは重要です // 使用されていない場合は未使用のパラメータの警告 // テストでは多くのエッジケースを考慮する必要があります。 より簡潔な方法は次のとおりです。 関数 myFunction({従業員名,役職,年数,専攻数}){ `${employeeName} は ${jobTitle} として働いており、${majorExp} で ${yrExp} 年の経験があります` を返します } //出力は、ジョンがプロジェクト管理で12年の経験を持つプロジェクトマネージャーとして働いているようなものになります // 次のように呼び出すことができます const mockTechPeople = { 従業員名:"ジョン", jobTitle:"プロジェクトマネージャー", 年数:12, 専攻分野:「プロジェクト管理」 } コンソールログ(myFunction(mockTechPeople)) // ES2015/ES6 分割構文が動作しています // 必要な変数に目的の値をマップします。 5. Object.assignを使用してデフォルトのオブジェクトを設定するこれは面倒なようです: 定数someObject = { タイトル: null、 subTitle: "サブタイトル", ボタンカラー: null、 無効: true }; 関数createOption(someObject) { someObject.title = someObject.title || "デフォルトのタイトル"; someObject.subTitle = someObject.subTitle || "デフォルトのサブタイトル"; someObject.buttonColor = someObject.buttonColor || "青"; someObject.disabled = someObject.disabled !== 未定義ですか? someObject.disabled : true; someObjectを返す } console.log(createOption(someObject)); // 出力は次のようになります // {title: 'デフォルトのタイトル'、subTitle: 'サブタイトル'、buttonColor: 'blue'、disabled: true} このアプローチの方が良いようです: 定数someObject = { タイトル: null、 subTitle: "サブタイトル", ボタンカラー: null、 無効: true }; 関数createOption(someObject) { const newObject = Object.assign({ タイトル: "デフォルトのタイトル", subTitle: "デフォルトのサブタイトル", ボタンの色: "青", 無効: true },someObject) 新しいオブジェクトを返す } console.log(creteOption(someObject)); これで、JavaScript コードベースをよりクリーンにする 5 つの方法についての記事は終了です。JavaScript コードベースをよりクリーンにする 5 つの方法についての詳細は、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。読んでいただきありがとうございます 以下もご興味があるかもしれません:
|
<<: MySQLデータベースが予期せずクラッシュし、テーブルデータファイルが破損して起動できなくなる問題を解決します。
>>: Linux システムで jmeter を実行し、ローカル メモリを最適化する方法の詳細な説明
この記事では、jsネイティブウォーターフォールフロープラグインの具体的なコードを参考までに共有します...
<br />内容はインターネットから転載したものです。どこから見つけたのか忘れてしまいま...
この記事では、ネイティブ JS で実装されたドラッグ可能な写真ウォールを紹介します。効果は次のとおり...
目次主キー制約ユニーク制約主キー制約PRIMARY KRY 主キーは一意です。テーブルには主キーを ...
今日、slave_exec_modeというパラメータを偶然見ました。マニュアルの説明から、このパラメ...
1. テーブルを作成する<br /> まず、2 つのテーブル (users テーブルと...
この記事では、例を使用して MySQL データのバックアップと復元の方法について説明します。ご参考ま...
たとえば、昨日新規登録されたユーザーを照会するには、次の 2 つの書き方があります。 説明する ch...
Sttty は、Linux で端末設定を変更および印刷するための一般的なコマンドです。 1. パラ...
Azure Container Registry は、Docker Registry 2.0 仕様に...
目次1. はじめに1.1 原則1.2 プロセス1.3 特徴1.4 githubアドレス2. テスト環...
序文Nginx はパフォーマンスを重視して設計された HTTP サーバーです。Apache や li...
Go は、シンプルで信頼性が高く、効率的なソフトウェアを簡単に構築できるオープンソース プログラミン...
<br />おそらく、あなたは会社に入社したばかりで、その会社が「ユーザビリティ」に関す...
[mysqlカーソルの使い方と機能]例:現在、テーブル A、B、C の 3 つのテーブルがあります。...