ES6 を使用する際のヒントは何ですか?
今回は ES6 を使用する際のヒントと、ES6 を使用する際の 注意事項 を紹介します。実際の事例を見てみましょう。
他にヒントをご存知の場合は、メッセージを残してください。喜んで追加させていただきます。
1. 必須パラメータ
ES6 はデフォルトのパラメータ値メカニズムを提供し、関数の呼び出し時にこれらのパラメータが渡されないようにパラメータのデフォルト値を設定できます。
以下の例では、パラメーター a と b のデフォルト値として required() 関数を作成しました。これは、a または b のパラメータのいずれかに呼び出し時に値が渡されない場合、required() 関数がデフォルト設定され、エラーがスローされることを意味します。
const required = () => {throw new Error('Missing parameter')}; const add = (a = required(), b = required()) => a + b; add(1, 2) //3 add(1) // Error: Missing parameter.
2. 強力なreduce
配列のreduceメソッドは非常に多用途です。これは通常、配列内の各項目を単一の値に減らすために使用されます。しかし、それ以上のことができます。
2.1 reduce を使用してマップとフィルターを同時に実装します
シーケンスがあり、その各項目を更新し (マップ関数)、その一部をフィルターで除外したいとします (フィルター関数)。最初にマップを使用してからフィルターを使用する場合は、配列を 2 回繰り返す必要があります。
以下のコードでは、配列内の値を 2 倍にして、50 より大きい数値を取り出します。マップ メソッドとフィルター メソッドの両方を完了するために、reduce を非常に効率的に使用していることに注目してください。
const numbers = [10, 20, 30, 40]; const doubledOver50 = numbers.reduce((finalList, num) => { num = num * 2; if (num > 50) { finalList.push(num); } return finalList; }, []); doubledOver50; // [60, 80]
2.2 reduce を使用してマップとフィルターを置き換えます
上記のコードを注意深く読むと、reduce でマップとフィルターを置き換えることができることが理解できるはずです。
2.3 reduce を使用して括弧を一致させる
reduce のもう 1 つの用途は、指定された string 内の括弧を一致させることができることです。括弧を含む文字列の場合、(and) の数が一致しているかどうか、および (が前に出現する) かどうかを知る必要があります。
以下のコードでは、reduce を使用してこの問題を簡単に解決します。最初にカウンタ変数を宣言するだけでよく、初期値は 0 です。エンカウントするとカウンターが1増加します(エンカウントするとカウンターが1減少します)。左右の括弧の数が一致する場合、最終結果は 0 になります。
//Returns 0 if balanced. const isParensBalanced = (str) => { return str.split('').reduce((counter, char) => { if(counter < 0) { //matched ")" before "(" return counter; } else if(char === '(') { return ++counter; } else if(char === ')') { return --counter; } else { //matched some other char return counter; } }, 0); //<-- starting value of the counter } isParensBalanced('(())') // 0 <-- balanced isParensBalanced('(asdfds)') //0 <-- balanced isParensBalanced('(()') // 1 <-- not balanced isParensBalanced(')(') // -1 <-- not balanced
2.4 配列内の同一項目の数を数える
配列内の繰り返し項目の数を数えて、それをオブジェクトで表現したいことがよくあります。次に、reduce メソッドを使用してこの配列を処理できます。
次のコードは、各タイプの車の台数をカウントし、合計台数をオブジェクトとして表します。
var cars = ['BMW','Benz', 'Benz', 'Tesla', 'BMW', 'Toyota']; var carsObj = cars.reduce(function (obj, name) { obj[name] = obj[name] ? ++obj[name] : 1; return obj; }, {}); carsObj; // => { BMW: 2, Benz: 2, Tesla: 1, Toyota: 1 }
reduce には他にもたくさんの用途があるので、MDN で関連するコード例を読むことをお勧めします。
3. オブジェクトの分解
3.1 不要な属性を削除する
場合によっては、機密情報が含まれているか、単に大きすぎるため、特定のオブジェクト属性を保持したくないことがあります。オブジェクト全体を列挙して削除することもできるかもしれませんが、実際には、不要なプロパティを変数に割り当て、保持したい有用な部分を残りのパラメータとして渡すだけです。
以下のコードでは、_internal パラメーターと tooBig パラメーターを削除します。それらを内部変数と tooBig 変数に割り当て、残りのプロパティを cleanObject に保存して後で使用できます。
let {_internal, tooBig, ...cleanObject} = {el1: '1', _internal:"secret", tooBig:{}, el2: '2', el3: '3'}; console.log(cleanObject); // {el1: '1', el2: '2', el3: '3'}
以下のコードでは、engine はオブジェクト car にネストされたオブジェクトです。エンジンの vin 属性に興味がある場合は、構造化代入を使用して簡単に取得できます。
var car = { model: 'bmw 2018', engine: { v6: true, turbo: true, vin: 12345 } } const modelAndVIN = ({model, engine: {vin}}) => { console.log(`model: ${model} vin: ${vin}`); } modelAndVIN(car); // => model: bmw 2018 vin: 12345
3.3 オブジェクトのマージ
ES6 には拡張機能 operator(...) が導入されています。通常、配列を構造解除するために使用されますが、オブジェクトにも使用できます。
次に、スプレッド演算子を使用して新しいオブジェクトを展開します。2 番目のオブジェクトの属性値は、最初のオブジェクトの属性値を上書きします。たとえば、object2 の b と c は、object1 の同じ名前の属性を上書きします。
let object1 = { a:1, b:2,c:3 } let object2 = { b:30, c:40, d:50} let merged = {…object1, …object2} //spread and re-add into merged console.log(merged) // {a:1, b:30, c:40, d:50}
4. Sets
4.1 Set を使用して配列の重複排除を実装します
ES6 では、Set は一意の値のみを保存するため、Set を使用して重複を削除できます。
let arr = [1, 1, 2, 2, 3, 3]; let deduped = [...new Set(arr)] // [1, 2, 3]
4.2 对Set使用数组方法
使用扩展运算符就可以简单的将Set转换为数组。所以你可以对Set使用Array的所有原生方法。
比如我们想要对下面的Set进行filter操作,获取大于3的项。
let mySet = new Set([1,2, 3, 4, 5]); var filtered = [...mySet].filter((x) => x > 3) // [4, 5]
5. 数组解构
有时候你会将函数返回的多个值放在一个数组里。我们可以使用数组解构来获取其中每一个值。
5.1 数值交换
let param1 = 1; let param2 = 2; //swap and assign param1 & param2 each others values [param1, param2] = [param2, param1]; console.log(param1) // 2 console.log(param2) // 1
5.2 接收函数返回的多个结果
在下面的代码中,我们从/post中获取一个帖子,然后在/comments中获取相关评论。由于我们使用的是async/await,函数把返回值放在一个数组中。而我们使用数组解构后就可以把返回值直接赋给相应的变量。
async function getFullPost(){ return await Promise.all([ fetch('/post'), fetch('/comments') ]); } const [post, comments] = getFullPost();
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
以上がES6 を使用する際のヒントは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Douyin の福袋アクティビティは常にユーザーの間で人気があり、参加するとさまざまな割引やプレゼントが得られるだけでなく、高額な賞品を獲得するチャンスもあります。しかし、初心者にとっては、福袋を効果的に引いて当選確率を高める方法がわからないかもしれません。この記事では、Douyin で福袋を引く楽しみをさらに高め、高額賞品を獲得する可能性を高めるためのヒントを紹介します。 1. 人気の福袋の推奨を選択し、公式 Web サイトに従ってください。Douyin プラットフォームでは、公式が人気の福袋アクティビティを開始することが多く、ホームページや関連チャネルでよく見られます。これらのイベントは通常非常に人気があり、賞品も豪華です。したがって、公式の推奨事項に注意を払うのは賢明な行動です。福袋を開ける前に、他のユーザーのコメントやレビューを読むことをお勧めします。他の人の宝くじ当選体験や福袋に対する意見を理解することで

Win11 のヒントの共有: Microsoft アカウントのログインをスキップする 1 つのトリック Windows 11 は、新しいデザイン スタイルと多くの実用的な機能を備えた、Microsoft によって発売された最新のオペレーティング システムです。ただし、一部のユーザーにとっては、システムを起動するたびに Microsoft アカウントにログインしなければならないのが少し煩わしい場合があります。あなたがそのような人であれば、次のヒントを試してみるとよいでしょう。これにより、Microsoft アカウントでのログインをスキップして、デスクトップ インターフェイスに直接入ることができるようになります。まず、Microsoft アカウントの代わりにログインするためのローカル アカウントをシステムに作成する必要があります。これを行う利点は、

私たちは Excel で表を作成したり編集したりすることがよくありますが、ソフトウェアに触れたばかりの初心者にとって、Excel を使用して表を作成する方法は私たちほど簡単ではありません。以下では、初心者、つまり初心者がマスターする必要があるテーブル作成のいくつかの手順について演習を行います。初心者向けのサンプルフォームを以下に示します。入力方法を見てみましょう。 1. Excel ドキュメントを新規作成するには 2 つの方法があります。 [デスクトップ]-[新規作成]-[xls]ファイル上の何もない場所でマウスを右クリックします。 [スタート]-[すべてのプログラム]-[Microsoft Office]-[Microsoft Excel 20**] を実行することもできます。 2. 新しい ex ファイルをダブルクリックします。

C 言語では、他の変数のアドレスを格納するポインタを表し、& は変数のメモリ アドレスを返すアドレス演算子を表します。ポインタの使用に関するヒントには、ポインタの定義、ポインタの逆参照、ポインタが有効なアドレスを指していることの確認が含まれます。アドレス演算子の使用に関するヒントには、変数アドレスの取得、配列要素のアドレスを取得するときに配列の最初の要素のアドレスを返すことなどが含まれます。 。ポインター演算子とアドレス演算子を使用して文字列を反転する実際の例。

VSCode (Visual Studio Code) は、Microsoft によって開発されたオープン ソース コード エディターであり、強力な機能と豊富なプラグイン サポートを備えており、開発者にとって推奨されるツールの 1 つです。この記事では、初心者が VSCode の使用スキルをすぐに習得できるようにするための入門ガイドを提供します。この記事では、VSCode のインストール方法、基本的な編集操作、ショートカット キー、プラグインのインストールなどを紹介し、具体的なコード例を読者に提供します。 1. まず VSCode をインストールします。

Oracle データベース クエリ スキル: 重複データを 1 つだけ取得するには、特定のコード サンプルが必要です 実際のデータベース クエリでは、重複データから 1 つのデータだけを取得する必要がある状況によく遭遇します。この記事では、Oracle データベースのテクニックを使用して重複データから 1 つのレコードのみを取得する方法を紹介し、具体的なコード例を示します。シナリオの説明 従業員情報を含む、employee という名前のテーブルがあるとします。従業員情報が重複している可能性があります。すべての重複を見つける必要があります

Win11 のトリックが明らかに: Microsoft アカウントのログインをバイパスする方法 最近、Microsoft は新しいオペレーティング システム Windows11 を発表し、広く注目を集めています。以前のバージョンと比較して、Windows 11 はインターフェイスのデザインや機能の改善の点で多くの新しい調整を加えましたが、いくつかの議論も引き起こしました. 最も目を引く点は、ユーザーが Microsoft アカウントでシステムにログインすることを強制することです。ユーザーによっては、ローカル アカウントでログインすることに慣れており、個人情報を Microsoft アカウントにバインドすることに抵抗がある場合があります。

タイトル: PHP プログラミングのヒント: 3 秒以内に Web ページにジャンプする方法 Web 開発では、一定時間内に別のページに自動的にジャンプする必要がある状況によく遭遇します。この記事では、PHP を使用して 3 秒以内にページにジャンプするプログラミング手法を実装する方法と、具体的なコード例を紹介します。まず、ページ ジャンプの基本原理は、HTTP 応答ヘッダーの Location フィールドを通じて実現されます。このフィールドを設定すると、ブラウザは指定されたページに自動的にジャンプできます。以下は、P の使用方法を示す簡単な例です。
