ecmascript5と6の違いは何ですか

Jul 01, 2022 pm 04:33 PM
es6

ecmascript5 と 6 の違い: 1. ecmascript6 には新しいブロックレベルのスコープがありますが、ecmascript5 にはありません; 2. デフォルトの関数パラメータは ecmascript6 に設定できますが、ecmascript5 には設定できません; 3. ecmascript6 のアロー関数は使用できますが、ecmascript5 にはアロー関数がありません。

ecmascript5と6の違いは何ですか

#このチュートリアルの動作環境: Windows10 システム、ECMAScript 6.0&&ECMAScript 5.0 バージョン、Dell G3 コンピューター。

ecmascript5 と 6 の違いは何ですか

ECMAScripts5 (ES5) は、2009 年に標準化された ECMAScripts の 5 番目のリビジョンです。 ECMAScripts6 (ES6) は、ECMAScript の 6 番目のリビジョンです。 2009 年に完成しました。2025 年に完成しました。ES2015 とも呼ばれる ES6 は、ES5 を改良したものです。ES5 と比較して、より簡潔になり、開発効率が向上しました。ES6 のいくつかの新機能:

1) 変数を宣言しますconst は定数を宣言します。2 つのブロックレベルのスコープがあります。ES5 にはブロックレベルのスコープはありません。var には変数のプロモーションがあります。let では、使用される変数を宣言する必要があります。

2) アロー関数関数ES6 の定義では、キーワード function() は使用されなくなりましたが、定義には ()=> を使用します

3) テンプレート文字列 テンプレート文字列は、バックティック (`) でマークされた文字列の拡張バージョンです。通常の文字列として使用するだけでなく、複数行の文字列の定義にも使用できます。

4) 代入の分割 ES6 では、配列やオブジェクトから値を抽出し、次に従って変数に値を割り当てることができます。特定のパターン

5 )... 展開演算子は配列またはオブジェクト内の値を展開できます; また、複数の値を変数に収集することもできます

詳細は次のとおりです以下:

新しい矢印関数

記述を簡素化しました。アロー関数は関数本体が 1 行の場合に適しており、複数行の場合は通常の関数を使用して可読性を高めることができます。コーディングを減らし、構造を明確にします

これを明確にします。従来の JS の this は定義時ではなく実行時に決定されますが、アロー関数の this は定義時に決定され、変更できず、call、apply、bind などのメソッドによって変更することもできません。実行時に this が誰を指しているのかを明確にしてください。実行時に this を判断する必要はありません。 注: アロー関数には独自の this はありません。this は外側の this であり、アロー関数ではない前の関数。 jsの仕組み上、アロー関数ではない関数のスコープを指します。

#アロー関数と通常の関数の違い

#通常の関数の宣言は変数の昇格が最も高く、アロー関数には関数の昇格がありません

  • アロー関数には this がありません。関数本体内の this オブジェクトは、それが使用されるオブジェクトではなく、定義されるオブジェクトです。アロー関数には引数オブジェクトがありません。オブジェクトは関数本体に存在しません。使用したい場合は、残りのパラメータを使用できます。

  • アロー関数はコンストラクターとして使用できません。また、新しい関数にすることも、プロパティを持たないこともできます。

  • call メソッドと apply メソッドにはパラメーターのみがあり、スコープはありません。

  • yield コマンドは使用できないため、アロー関数をジェネレーター関数として使用することはできません

  • ブロックレベルのスコープ

  • ES6 の let コマンド変数を宣言し、その使用法は var と似ていますが、let は JavaScript に新しいブロックレベルのスコープを追加します。ES5 にはブロックレベルのスコープはありません。また、var には変数のプロモーションの概念がありますが、let では使用される変数は次のとおりです。宣言される; const は定数を宣言します。

    ES6 での変数の構造割り当て (例: var [a,b,c] = [0 ,1,2];

クラス継承)

ES6 では、ES5 のような継承の実装にプロトタイプ チェーンは使用されなくなりましたが、Java に似たクラスの概念が導入されました。オブジェクト指向プログラミングの構文は多少似ていますが、この 2 つは異なります。違う。

拡張知識:

var、let、const の違い

var は繰り返し宣言できますが、let は繰り返し宣言できません

var はブロック レベルに制限されませんが、let はブロック レベルに制限されます

var はウィンドウにマッピングされます (属性が付加されます)が、let はウィンドウにマッピングされません。 window

var は宣言の上の変数にアクセスできますが、 let には一時的なデッド ゾーンがあります。宣言の上の変数にアクセスするとエラーが報告されます。

const には宣言の後に値を割り当てる必要があります。それ以外の場合は、エラーが報告されます

const 不変の量を定義し、それが変更されるとエラーが報告されます

const は let と同様にウィンドウにマップされず、ブロックレベルのスコープをサポートします。宣言より上の変数にアクセスするとエラーが報告されます

[関連推奨:

JavaScript ビデオ チュートリアル

Web フロントエンド

]

以上がecmascript5と6の違いは何ですかの詳細内容です。詳細については、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

ES6 で配列を反転する方法 ES6 で配列を反転する方法 Oct 26, 2022 pm 06:19 PM

ES6 では、配列オブジェクトの reverse() メソッドを使用して、配列の反転を実現できます。このメソッドは、配列内の要素の順序を逆にして、最後の要素を最初に、最初の要素を最後に配置するために使用されます。構文「array」 。逆行する()"。 reverse() メソッドは元の配列を変更します。変更したくない場合は、拡張演算子 "..." とともに使用する必要があり、構文は "[...array].reverse() 」。

非同期は es6 または es7 用ですか? 非同期は es6 または es7 用ですか? Jan 29, 2023 pm 05:36 PM

非同期はes7です。 async と await は ES7 に新しく追加されたもので、非同期操作のソリューションです。async/await は co モジュールとジェネレーター関数の糖衣構文と言え、より明確なセマンティクスで JS 非同期コードを解決します。名前が示すように、async は「非同期」を意味します。async は関数が非同期であることを宣言するために使用されます。async と await の間には厳密な規則があります。両方を互いに分離することはできず、await は async 関数内でのみ記述できます。

es6 の 2 つの配列で異なる項目を見つける方法 es6 の 2 つの配列で異なる項目を見つける方法 Nov 01, 2022 pm 06:07 PM

手順: 1. 構文 "newA=new Set(a); newB=new Set(b);" を使用して、2 つの配列をそれぞれセット型に変換します; 2. has() と filter() を使用して差分セットを検索します、構文 " new Set([...newA].filter(x =>!newB.has(x)))" では、差分セット要素がセット コレクションに含まれて返されます。 3. 配列を使用します。 from セットを配列に変換するタイプ、構文は「Array.from(collection)」です。

ミニ プログラムで es6 を es5 に変換する必要があるのはなぜですか? ミニ プログラムで es6 を es5 に変換する必要があるのはなぜですか? Nov 21, 2022 pm 06:15 PM

ブラウザの互換性のため。 ES6 は JS の新しい仕様として、多くの新しい構文と API を追加していますが、最新のブラウザーは ES6 の新機能を高度にサポートしていないため、ES6 コードを ES5 コードに変換する必要があります。 WeChat Web 開発者ツールでは、デフォルトで babel が使用され、開発者の ES6 構文コードを 3 つの端末すべてで適切にサポートされる ES5 コードに変換し、開発者がさまざまな環境によって引き起こされる開発上の問題を解決できるようにします。プロジェクト内でのみ設定して確認するだけです。 「ES6~ES5」オプション。

es5 および es6 で配列重複排除を実装する方法 es5 および es6 で配列重複排除を実装する方法 Jan 16, 2023 pm 05:09 PM

es5 では、for ステートメントと IndexOf() 関数を使用して配列の重複排除を実現できます。構文 "for(i=0;i<配列長;i++){a=newArr.indexOf(arr[i]);if( a== -1){...}}」。 es6 では、スプレッド演算子 Array.from() および Set を使用して重複を削除できます。まず配列を Set オブジェクトに変換して重複を削除してから、スプレッド演算子または Array.from() 関数を使用する必要があります。 Set オブジェクトを配列に変換してグループ化するだけです。

es6 の一時的なデッドゾーンとは何を意味しますか? es6 の一時的なデッドゾーンとは何を意味しますか? Jan 03, 2023 pm 03:56 PM

es6 では、一時的なデッド ゾーンは構文エラーであり、ブロックを閉じたスコープにする let および const コマンドを指します。コード ブロック内では、let/const コマンドを使用して変数が宣言される前に、変数は使用できず、変数が宣言される前は変数の「デッド ゾーン」に属します。これは構文上「一時デッド ゾーン」と呼ばれます。 ES6 では、一時的なデッド ゾーンや let ステートメントや const ステートメントでは変数のプロモーションが発生しないことを規定しています。これは主に実行時エラーを減らし、変数が宣言される前に使用されて予期しない動作が発生するのを防ぐためです。

es6 構文が必要ですか? es6 構文が必要ですか? Oct 21, 2022 pm 04:09 PM

いいえ、require は CommonJS 仕様のモジュール構文であり、es6 仕様のモジュール構文は import です。 require は実行時にロードされ、import はコンパイル時にロードされます。require はコード内のどこにでも記述できます。import はファイルの先頭にのみ記述でき、条件文や関数スコープでは使用できません。モジュール属性は導入されるだけです。 require を実行した場合、そのためパフォーマンスは比較的低くなりますが、インポート コンパイル中に導入されたモジュールのプロパティのパフォーマンスはわずかに高くなります。

es6 マップは注文されていますか? es6 マップは注文されていますか? Nov 03, 2022 pm 07:05 PM

地図は注文済みです。 ES6 のマップ タイプは、多くのキーと値のペアを格納する順序付きリストです。キー名と対応する値はすべてのデータ型をサポートします。キー名の等価性は、「Objext.is()」メソッドを呼び出すことによって決定されます。 , したがって、数字の 5 と文字列「5」は 2 つのタイプとして判断され、プログラム内で 2 つの独立したキーとして現れることができます。

See all articles