ホームページ ウェブフロントエンド jsチュートリアル ES6を使用する際の注意点は何ですか?

ES6を使用する際の注意点は何ですか?

Jun 06, 2018 am 10:20 AM
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 つの用途は、指定された文字列内の括弧を一致させることです。括弧を含む文字列の場合、(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 === &#39;(&#39;) {
   return ++counter;
  } else if(char === &#39;)&#39;) {
   return --counter;
  } else { //matched some other char
   return counter;
  }
  
 }, 0); //<-- starting value of the counter
}
isParensBalanced(&#39;(())&#39;) // 0 <-- balanced
isParensBalanced(&#39;(asdfds)&#39;) //0 <-- balanced
isParensBalanced(&#39;(()&#39;) // 1 <-- not balanced
isParensBalanced(&#39;)(&#39;) // -1 <-- not balanced
ログイン後にコピー

2.4 配列内の同一項目の数を数える

配列内の繰り返し項目の数を数えて、それをオブジェクトで表現したいことがよくあります。次に、reduce メソッドを使用してこの配列を処理できます。

次のコードは、各タイプの車の台数をカウントし、合計台数をオブジェクトとして表します。

var cars = [&#39;BMW&#39;,&#39;Benz&#39;, &#39;Benz&#39;, &#39;Tesla&#39;, &#39;BMW&#39;, &#39;Toyota&#39;];
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'}
ログイン後にコピー

3.2 関数パラメータ内のネストされたオブジェクトの構造化

次のコードでは、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 ではスプレッド演算子 (...) が導入されました。通常、配列を構造解除するために使用されますが、オブジェクトにも使用できます。

次に、スプ​​レッド演算子を使用して新しいオブジェクトを展開します。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中文网其它相关文章!

推荐阅读:

ajax怎样动态增加表格的tr与td

微信小程序内轮播图怎样设置成自适应高度

以上がES6を使用する際の注意点は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Douyinで福袋を引くコツはありますか?どうやって? Douyinで福袋を引くコツはありますか?どうやって? Mar 07, 2024 pm 06:52 PM

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

Win11 ヒントの共有: ワン トリックで Microsoft アカウントのログインをスキップする Win11 ヒントの共有: ワン トリックで Microsoft アカウントのログインをスキップする Mar 27, 2024 pm 02:57 PM

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

ベテラン必携:C言語の*と&のヒントと注意点 ベテラン必携:C言語の*と&のヒントと注意点 Apr 04, 2024 am 08:21 AM

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

初心者がフォームを作成するためのヒントは何ですか? 初心者がフォームを作成するためのヒントは何ですか? Mar 21, 2024 am 09:11 AM

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

VSCode 入門ガイド: 初心者が使い方のスキルをすぐにマスターするための必読の書です。 VSCode 入門ガイド: 初心者が使い方のスキルをすぐにマスターするための必読の書です。 Mar 26, 2024 am 08:21 AM

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

Oracle データベースのクエリ スキル: 重複データを 1 つだけ取得する Oracle データベースのクエリ スキル: 重複データを 1 つだけ取得する Mar 08, 2024 pm 01:33 PM

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

PHP プログラミング スキル: 3 秒以内に Web ページにジャンプする方法 PHP プログラミング スキル: 3 秒以内に Web ページにジャンプする方法 Mar 24, 2024 am 09:18 AM

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

Win11 の裏技が明らかに: Microsoft アカウントのログインをバイパスする方法 Win11 の裏技が明らかに: Microsoft アカウントのログインをバイパスする方法 Mar 27, 2024 pm 07:57 PM

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

See all articles