ES6(ES2015)およびそれ以降:JavaScriptバージョンの理解
近年、JavaScriptの開発が急増しています。新しいECMAScriptの仕様は毎年リリースされており、JavaScriptバージョン管理、各バージョンの機能サポート、および将来指向のコードを作成する方法が混乱しています。
この一見継続的な更新の波の背後にある理由をよりよく理解するために、JavaScriptとそのバージョンの歴史を簡単に確認し、標準化プロセスが非常に重要な理由を理解しましょう。
キーポイント
- ES6(ES2015とも呼ばれます)は、JavaScriptバージョン管理の大きな変化を示しており、クラス、約束、矢印関数、ESモジュール、ジェネレーター、反復器などの機能を導入しています。これは、将来の毎年恒例の小さなJavaScriptバージョンの更新の基礎を築く重要な基盤の更新です。
- ES2015は、新しい言語機能の議論と採用のための提案ベースのTC39プロセスを確立します。このプロセスは、ストローマン(序文)、提案(提案)、ドラフト(ドラフト)、候補者(候補者)、および終了(完成)の5つの段階で構成されています。
- ES2015の後、その後のバージョンは毎年6月にリリースされ、ES2016(ES7)とES2017(ES8)は増分機能と改善を導入します。 ES2018は、非同期イテレーターやオブジェクトの拡張や残差特性などの強力な新機能を紹介します。
- リリース年を反映してバージョン番号を削除するために、ES6をES6に変更しました。この動きは、混乱を避け、JavaScriptが絶えず更新され改善されている動的言語であることを示すことです。新しい命名規則も、言語の更新と改善の規則性を示すのに役立ちます。
JavaScriptバージョン管理の初期の歴史 JavaScriptのプロトタイプは、1995年5月にBrendan Eichによってわずか10日で書かれました。彼は当初、Netscape Navigatorのスキームランタイムを実装するために採用されましたが、管理チームはCスタイルの言語を使用して当時の新しいJavaを補完するように推進しました。
JavaScriptは、1995年12月にNetscape Navigatorバージョン2でデビューしました。翌年、MicrosoftのリバースエンジニアリングJavaScriptをリバースエンジニアリングし、JScriptと呼ばれる独自のバージョンを作成しました。 Internet Explorer Browserバージョン3でリリースされたJScriptは、JavaScriptとほぼ同じ(同じバグや癖を含めてもまったく同じ)ですが、追加のインターネットエクスプローラー固有の機能があります。
ecmascriptの誕生
JScript(およびその他のバリアント)がJavaScriptと互換性があることを確認する必要があり、NetscapeおよびSun Microsystemsが言語を標準化するように促します。彼らは、欧州コンピューターメーカー協会(ECMA)の助けを借りてこれを行いました。標準化された言語は、SunのJava商標の侵害を避けるためにECMAScriptと呼ばれます。これは、かなりの混乱を引き起こした動きです。最終的に、ECMAScriptは仕様を参照するために使用されますが、JavaScript(およびまだそうです)は言語自体を参照するために使用されます。
JavaScriptバージョンの管理とECMAScriptのメンテナンスを担当するワーキンググループは、技術委員会39、またはTC39として知られています。 Apple、Google、Microsoft、Mozillaなどのすべての主要なブラウザベンダーの代表者と、Web開発に関心のある他社の専門家や代表者を招待しています。彼らは言語の方向を決定するために定期的な会議を開催します。
1997年にJavaScriptがTC39によって標準化された場合、仕様はECMAScriptバージョン1と呼ばれていました。当初、ECMAScriptの後続のバージョンは毎年リリースされましたが、コンセンサスの欠如とECMAScript 4周辺の管理が困難な特徴の大規模なセットのために散発的になりました。そのため、バージョンは終了し、3.1に絞り込まれましたが、その名前では確定されていませんでしたが、最終的にはECMaScript 5に進化しました。 ECMAScript 3のリリースから10年後の2009年12月にリリースされ、JSONシリアル化API、function.prototype.bind、Strictモードなどの機能を導入しました。 2年後、メンテナンスバージョンがリリースされ、最新のイテレーション5.1のあいまいさを明らかにしました。
ecmascript 2015および年次リリースのリバイバル
TC39がECMAScript 4によって引き起こされる意見の相違を解決するにつれて、ブレンダン・アイヒは、より短く、より小さなリリースの必要性を強調しました。これらの新しい仕様の最初は、es2015 (元々はecmascript 6またはes6と呼ばれています)です。このリリースは、将来の年次JavaScriptリリース管理をサポートする巨大で必要な礎石です。今日の多くの開発者が非常に愛している多くの機能が含まれています。
カテゴリ- 約束
- 矢印関数
- esモジュール
- ジェネレーターとiterator
- ES2015は、言語機能を議論および採用するための提案ベースのモデルである
に従う最初のバージョンです。
tc39プロセス提案が今後のECMAScriptバージョンに受け入れられる前に、5段階を経る必要があります。
ステージ0:Strawman(序文)
これは、仕様にアイデアを提出できる便利なステップです。誰でも特集の提案をすることができます。
ステージ1:提案(提案)
提案の正式化の最初の段階。マスト:
このソリューションで修正された既存の問題を説明してください
- APIの概要と、高度な実装の詳細、およびポリフィルやデモンストレーション を提供します
- 事前に潜在的な障害を議論します
- 提案を採用および前進させるために、担当者を選択する必要があります。この人はTC39メンバーでなければなりません。
ステージ2:ドラフト(ドラフト) これは、この機能が将来のECMAScriptリリースに含まれる可能性があるマイルストーンです。ここでは、提案の構文とセマンティクスは、仕様で説明されている正式な言語を使用して詳細に説明されています。現時点では、実験的な実装を提供する必要があります。
ステージ3:候補者(候補者)
ここでは、提案のコンテンツとサポート技術のほとんどが開発されましたが、ユーザーや実装者(ブラウザーメーカーなど)からのさらなるフィードバックが開発されています。取得してアクションが取られると、要約と仕様の詳細は、指定されたレビュアーと指定された編集者によって最終決定され、署名されます。この段階では一貫した実装が必要なため、その後、重大な変更のみが受け入れられます。
ステージ4:終了(完了)
この提案は受け入れられており、ecmascriptに追加できます。したがって、それは本質的に:
-
JavaScriptに記載されている
- TEST262スイートの一部の受容テストは、機能のコンプライアンスと動作を実証するために書かれています 少なくとも2つの準拠の実装が利用可能でリリースされています。これらはすべて、その堅牢性と開発者の可用性を証明しています
- プル要求は、公式のECMA-262コードベースに提出され、仕様編集によって署名されました。
楽しみにしています
es2016 array.prototype.includes 指数演算子 es2017
es2018
表面的には、これらの2つの構文の改善は、Babelなどのコンパイラが利用可能であるため、JavaScript開発者の間で人気があります。オブジェクトの拡張と残差プロパティは、アレイの拡張と残差プロパティに似ており、オブジェクトプロパティの浅いコピーとグループ化の分解を可能にします: その他の受け入れられた提案には、promise.prototype.finally()、および正規表現とテンプレートリテラルの拡張が含まれます。 結論 JavaScriptは非常に短い期間で大幅に発達しました。これは、ECMAScript標準とTC39の優れた仕事によるものですが、以前のJavaScriptバージョンの管理と開発の安定性と凝集の欠如により、当初は困難な旅でした。 提案プロセスは比較的成熟しているため、言語は実用的で制御可能な方法でのみ改善できます。これはWeb開発者にとって素晴らしい時間です! FAQ:ES6およびES2015 ES6とES2015は本質的に同じです。 ES6は、ECMAによって国際的に標準化されたECMAScriptプログラミング言語の第6版です。 ES2015はES6の新しい名前であり、リリースされた年を反映しています。改名は、リリース年を反映し、バージョン番号を取り除くことを目的としています。これは混乱する可能性があります。 リリース年を反映してバージョン番号を削除するために、ES6をES6に変更しました。この動きは、混乱を避け、JavaScriptが絶えず更新され改善されている動的言語であることを示すことです。新しい命名規則も、言語の更新と改善の規則性を示すのに役立ちます。 ES6/ES2015は、さまざまな宣言、より短い関数構文の矢印関数、文字列補間のテンプレートリテラル、オブジェクト指向プログラミングクラスのテンプレートリテラル、非同期プログラミングの約束など、JavaScriptの多くの新機能を紹介します。コード組織のモジュールなど。 JavaScriptコードでES6/ES2015機能を使用して開始する方法は?
TypeScriptとES6/ES2015の関係は何ですか? JavaScriptの以前のバージョンを使用するよりも、ES6/ES2015を使用することの利点は何ですか? これは、ECMAScriptの最初の小さい増分バージョンです。バグの修正に加えて、2つの機能を追加します。
この例方法により、配列内の値を検索する操作が簡素化されます。
// ES2016 之前:
const hasBob = names.indexOf('bob') > -1;
// ES2016:
const hasBob = names.includes('bob');
// ES2016 之前
Math.pow(5, 3); // => 125
// ES2016
5 ** 3; // => 125
Async function
文字列充填方法// Promise
const getProfile = name => {
return fetch(`https://some-api/people/${name}`)
.then(res => res.json())
.then(({ profile }) => profile); // 从解析的对象中解构 `profile`
};
// async/await
const getProfile = async name => {
const res = await fetch(`https://some-api/people/${name}`);
const { profile } = await res.json();
return profile;
};
その他の機能には、トレーリングコンマ、共有メモリおよび原子操作、および静的オブジェクトメソッド(object.entries()、object.values()、およびobject.getownPropertyDescriptors())が含まれます。
'foo'.padStart(6); // => ' foo';
'foo'.padEnd(6); // => 'foo ';
'foo'.padStart(10, 'bar'); // => 'barbarbfoo';
'foo'.padEnd(10, 'bar'); // => 'foobarbarb';
promise.all()を使用すると、複数の約束の解析を待つことができますが、場合によっては、非同期に取得された値を反復する必要がある場合があります。これで、プロミスアレイを備えた非同期イテレーターを待つことができます:// ES2016 之前:
const hasBob = names.indexOf('bob') > -1;
// ES2016:
const hasBob = names.includes('bob');
オブジェクトの展開と残りのプロパティ
// ES2016 之前
Math.pow(5, 3); // => 125
// ES2016
5 ** 3; // => 125
ES6とES2015の主な違いは何ですか?
es6をES2015に変更する理由
ES6/ES2015に導入された重要な機能は何ですか?
let
const
ES6/ES2015 JavaScriptエンコーディングを改善する方法は? ES6/ES2015は、さまざまな方法でJavaScriptエンコードを改善します。言語をより強力で使いやすくする新しい構文と機能を紹介します。たとえば、矢印関数は機能書き込みにクリーンな構文を提供しますが、Promiseは非同期操作の処理を容易にします。モジュールの導入は、コードの整理を改善し、管理と保守を容易にするのにも役立ちます。
JavaScriptコードのES6/ES2015機能を開始するには、ES6コードを現在のブラウザで実行できるES5コードに変換するBabelなどの翻訳者を使用できます。 Webpackなどのモジュールパッカーを使用して、JavaScriptモジュールを管理およびバンドルすることもできます。
ES6/ES2015と互換性の問題はありますか?
ES6/ES2015の機能のほとんどは、ほとんどの最新のブラウザでサポートされていますが、古いブラウザには互換性の問題がある場合があります。互換性を確保するために、ブラウザからネイティブサポートを期待する機能を提供するPolyFillを使用できます。
javascriptは、もともとNetscapeによって開発されたプログラミング言語です。 ECMAScriptは、ECMAによって国際的に標準化されたJavaScript標準バージョンです。 JavaScriptはECMAScriptを実装します。これは、ECMAScript標準で定義されているルールと構造に従うことを意味します。
TypeScriptは、言語に静的タイプを追加するJavaScriptのスーパーセットです。 ES6/ES2015のすべての機能、さらにはJavaScriptにはない追加機能をサポートしています。タイプスクリプトコードはJavaScriptに翻訳されるため、JavaScript環境で実行できます。
以上がES6(ES2015)およびそれ以降:JavaScriptバージョンの理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます
