1.配列を初期化する指定した長さの 1 次元配列を初期化し、デフォルト値を指定する場合は、次のようにします。 const配列 = Array(6).fill(''); // [''、''、''、''、''] 指定した長さの 2 次元配列を初期化し、デフォルト値を指定する場合は、次のようにします。 const 行列 = Array(6).fill(0).map(() => Array(5).fill(0)); // [[0, 0, 0, 0, 0], // [0, 0, 0, 0, 0], // [0, 0, 0, 0, 0], // [0, 0, 0, 0, 0], // [0, 0, 0, 0, 0], // [0, 0, 0, 0, 0]] 2. 配列の合計、最大値、最小値定数配列 = [5,4,7,8,9,2]; 配列を合計する: 配列を縮小します((a,b) => a+b); 配列の最大値: 配列を縮小します((a,b) => a > b ? a : b); Math.max(...配列) 配列の最小値: 配列を縮小します((a,b) => a < b ? a : b); Math.min(...配列) 配列の 3. エラー値をフィルタリングする配列内の false、0、null、undefined などの値を除外したい場合は、次のようにします。 const配列 = [1, 0, 未定義, 6, 7, '', false]; 配列.フィルター(ブール値); // [1, 6, 7] 4. 論理演算子を使用する次のようなコードがあったとします。 もし(a > 10) { 何かをする(a) } これは論理演算子を使用して書き直すことができます。 a > 10 && doSomething(a) この書き方ははるかに簡単です。論理 AND && 演算子の前の値が false の場合、短絡演算が発生し、この文の実行はそのまま終了します。true の場合は、&& の後のコードが引き続き実行され、次のコードの戻り値が返されます。この方法を使用すると、if...else の判断を大幅に減らすことができます。 5. 判断を簡素化する次のような判決があった場合: if(a === 未定義 || a === 10 || a=== 15 || a === null) { //... } この判断ロジックを簡略化するために配列を使用できます。 if([未定義、10、15、null].includes(a)) { //... } この方法により、コードがはるかにシンプルになり、拡張しやすくなります。それでも a と等しいかどうかを判断する必要がある場合は、配列に追加するだけです。 6. 配列をクリアする配列をクリアしたい場合は、配列の長さを 0 に設定します。 配列 = ["A", "B", "C", "D", "E", "F"] とします。 配列の長さ = 0 console.log(配列) // [] 7. コードのパフォーマンスを計算するコードのパフォーマンスは、次の操作を使用して計算できます。 定数 startTime = performance.now(); // いくつかの手順 for(let i = 0; i < 1000; i++) { コンソールログ(i) } 定数 endTime = performance.now(); const 合計時間 = 終了時間 - 開始時間; console.log(合計時間); // 30.299999952316284 8. 配列の連結複数の配列を連結したい場合は、スプレッド演算子を使用できます。 定数開始 = [1, 2] 定数終了 = [5, 6, 7] const numbers = [9, ...開始, ...終了, 8] // [9, 1, 2, 5, 6, 7 , 8] または、配列の concat() メソッドを使用します。 定数開始 = [1, 2, 3, 4] 定数終了 = [5, 6, 7] start.concat(end); // [1, 2, 3, 4, 5, 6, 7] ただし、concat 配列.push.apply(開始、終了) この方法では、メモリ使用量を大幅に削減できます。 9. オブジェクト検証方法次のようなオブジェクトがあるとします。 定数親 = { 子供: { 子1: { 子2: { キー: 10 } } } } 特定のレベルが存在しないことによって発生するエラーを回避するために、次のように記述することがよくあります。 親 && 親.子 && 親.子.子1 && 親.子.子1.子2 このコードは肥大化しているように見えますが、JavaScript のオプションの連鎖演算子を使用できます。 親?.子?.子1?.子2 この実装と効果は上記の長いリストと同じです。 オプションの連鎖演算子は配列でも機能します。 定数配列 = [1, 2, 3]; 配列?[5] オプションの連鎖演算子を使用すると、チェーン内のすべての参照が有効であることを明示的に検証しなくても、接続されたオブジェクトのチェーンの奥深くにあるプロパティの値を読み取ることができます。参照が null または undefined の場合、エラーは発生せず、式の短絡戻り値は 10. undefined と null を検証するそのようなコードがある場合: if(a === null || a === 未定義) { 何かを行う() } つまり、値が 何かを行う() この方法では、制御合体演算子に続くコードは、a が 11. 配列要素を数値に変換する配列があり、配列内の要素を数値に変換したい場合は、map メソッドを使用してそれを実現します。 定数配列 = ['12', '1', '3.1415', '-10.01']; array.map(数値); // [12, 1, 3.1415, -10.01] このように、 12. クラス配列を配列に変換する配列のような引数を配列に変換するには、次の方法を使用できます。 Array.prototype.slice.call(引数); あるいは、スプレッド演算子を使用することもできます。 [...議論] 13. オブジェクトの動的宣言プロパティオブジェクトのプロパティを動的に宣言したい場合は、次のようにします。 定数ダイナミック = 'color'; var アイテム = { ブランド:「フォード」 [ダイナミック]: '青' } console.log(アイテム); // { ブランド: "Ford", 色: "青" } 14. console.log() を短くするデバッグするたびに console.log() をたくさん書くのは面倒です。次の形式を使用すると、コードを簡素化できます。 const c = console.log.bind(ドキュメント) (996) c("こんにちは世界") この方法では、毎回メソッド c を実行するだけで済みます。 15. クエリパラメータを取得するURL 内のパラメータを取得したい場合は、window オブジェクトのプロパティを使用できます。 ウィンドウの場所の検索 URL が www.baidu.com?project=js&type=1 の場合、上記の操作により ?project=js&type=1 が取得されます。パラメータの 1 つを取得したい場合は、次のようにします。 type = new URLSearchParams(location.search).get('type'); とします。 16. 丸め小数点を含む数値があり、小数点を削除したい場合は、 ~~3.1415926 // 3 実際、この演算子には多くの機能があります。通常は変数を数値型に変換するために使用されます。変換結果の種類によって結果は異なります。
この方法に加えて、ビット単位の AND を使用して数値の丸め演算を実装することもできます。数値の後に |0 を追加するだけです。 23.9 | 0 // 23 -23.9 | 0 // -23 この操作により、数値の後の小数点も直接削除されます。この方法は上記の方法と似ており、 17. 配列要素の削除配列内の要素を削除したい場合は、delete を使用して削除できますが、削除後の要素は 定数配列 = ["a", "b", "c", "d"] 配列.splice(0, 2) // ["a", "b"] 18. オブジェクトがnullかどうかを確認するオブジェクトが空かどうかを確認したい場合は、次のメソッドを使用できます。 Object.keys({}).length // 0 Object.keys({key: 1}).length // 1
19. if/elseの代わりにswitch caseを使う
if (1 == 月) {日数 = 31;} そうでない場合、(2 == 月) {days = IsLeapYear(year) ? 29 : 28;} そうでない場合、(3 == 月) {日数 = 31;} そうでない場合 (4 == 月) {日数 = 30;} そうでない場合、(5 == 月) {日数 = 31;} そうでない場合、(6 == 月) {日数 = 30;} そうでない場合、(7 == 月) {日数 = 31;} そうでない場合、(8 == 月) {日数 = 31;} そうでない場合、(9 == 月) {日数 = 30;} そうでない場合、(10 == 月) {日数 = 31;} そうでない場合、(11 == 月) {日数 = 30;} そうでない場合、(12 == 月) {日数 = 31;} switch...case を使用して書き直します。 スイッチ(月) { ケース 1: days = 31; break; ケース 2: days = IsLeapYear(year) ? 29 : 28; break; ケース 3: 日数 = 31; 休憩; ケース 4: 日数 = 30; 休憩; ケース5: 日数 = 31; 休憩; ケース 6: 日数 = 30; 休憩; ケース 7: 日数 = 31; 休憩; ケース 8: 日数 = 31; 休憩; ケース9: 日数 = 30; 休憩; ケース10: 日数 = 31; 休憩; ケース11: 日数 = 30; 休憩; ケース12: 日数 = 31; 休憩; デフォルト: break; } 見た目は比較的シンプルです。状況に応じて、配列またはオブジェクトを使用して if...else を書き換えることができます。 20. 配列の最後の項目を取得する配列の最後の項目を取得したい場合は、次のように記述することがよくあります。 定数arr = [1, 2, 3, 4, 5]; arr[arr.長さ - 1] // 5 実際、配列のスライス メソッドを使用して配列の最後の要素を取得することもできます。 arr.スライス(-1) スライスメソッドのパラメータを負の値に設定すると、配列の値は配列の後ろからインターセプトされます。最後の 2 つの値をインターセプトしたい場合は、パラメータとして -2 を渡すだけです。 21. 値をブール値に変換する
通常、明示的な値をブール値に変換する場合は、 !!未定義 // 偽 !!"996" // 真 !!null // 偽 !!NaN // 偽 22. JSONコードのフォーマット誰もが、 JSON.stringify(値、置換子、スペース) 3 つのパラメータがあります。
通常、JavaScript オブジェクトまたは値を JSON 文字列に変換するためのパラメータを記述します。 2 つのオプション パラメーターがあることがわかります。これらの 2 つのパラメーターを使用して JSON コードをフォーマットできます。 console.log(JSON.stringify({ alpha: 'A', beta: 'B' }, null, '\t')); 出力は次のようになります。 23. eval() と with() の使用を避ける
24. 関数のパラメータにはパラメータリストではなくオブジェクトを使用するパラメータリストを使用して関数にパラメータを渡す場合、パラメータが少ない場合は問題ありませんが、パラメータが多い場合は、パラメータリストの順序でパラメータを渡す必要があるため面倒になります。 関数に多くのパラメータがある場合は、それらをオブジェクトの形式で渡すことを検討できます。パラメータをオブジェクトの形式で渡す場合、オプションのパラメータを最後に渡す必要はなく、パラメータの順序は重要ではありません。オブジェクトを介して渡されるものは、パラメータ リストよりも読みやすく理解しやすいです。 例を見てみましょう: 関数 getItem(価格、数量、名前、説明) {} getItem(15, undefined, 'バナナ', 'フルーツ') オブジェクトの受け渡しを使用しましょう: 関数 getItem(args) { const {価格、数量、名前、説明} = args } アイテムを取得する({ 名前: 「バナナ」 価格: 10, 数量: 1, 説明: 'フルーツ' }) 24 の実用的な JavaScript 開発スキルに関するこの記事はこれで終わりです。より関連性の高い JavaScript 開発スキルについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Mysql+JavaSwing に基づくスーパーマーケット商品管理システムの設計と実装
1pxの線が太くなる理由モバイルプロジェクトに取り組むとき、設計図に従って要素ノードのサイズとスタイ...
ルート ルーティング コンポーネント (アプリの下のルート ルーティング コンポーネント。子コンポー...
123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...
目次MVCCとはMVCC 実装MVCC はファントム リードを解決しますか? MVCCとはMVCC ...
絶対長さピクセルpx はピクセル値であり、メートルやセンチメートルのような固定の長さです。相対的な長...
目次1. オプションの連鎖2. NULL値の結合3. 再帰型エイリアス4. アサーション署名5. P...
目次開発の際には、機能を段階的に分析して実装することで、明確な考え方を保つことができます。 1. フ...
私のマシン環境: Windows 2008 R2 MySQL 5.6 Baidu で「Windows...
以下のように表示されます。 #!/usr/bin/env python3.5 psutilをインポー...
TW のメインテキスト ページは、以前は小さなモニターと低解像度のユーザーを考慮して幅が 850 ピ...
1. 準備Linux オペレーティング システムをインストールした後、ここで Linux 7 を選択...
バックエンド管理プロジェクトを開発する場合、バックエンドのユーザーデータをカウントし、折れ線グラフや...
この記事では、階段スライド効果を実現するためのjQueryの具体的なコードを参考までに紹介します。具...
前の章では、1 つのテーブルからデータを読み取る方法を学習しました。これは比較的簡単ですが、実際のア...
目次序文基本的な紹介コードの実装基本構造アップロード分析Excel にエクスポート基本構造Excel...