目次
これは、仕様にアイデアを提出できる便利なステップです。誰でも特集の提案をすることができます。
提案の正式化の最初の段階。マスト:
ステージ3:候補者(候補者)
ステージ4:終了(完了)
これは、ECMAScriptの最初の小さい増分バージョンです。バグの修正に加えて、2つの機能を追加します。
その他の機能には、トレーリングコンマ、共有メモリおよび原子操作、および静的オブジェクトメソッド(object.entries()、object.values()、およびobject.getownPropertyDescriptors())が含まれます。
オブジェクトの展開と残りのプロパティ
ES6とES2015の主な違いは何ですか?
es6をES2015に変更する理由
ES6/ES2015に導入された重要な機能は何ですか?
ES6/ES2015は、さまざまな方法でJavaScriptエンコードを改善します。言語をより強力で使いやすくする新しい構文と機能を紹介します。たとえば、矢印関数は機能書き込みにクリーンな構文を提供しますが、Promiseは非同期操作の処理を容易にします。モジュールの導入は、コードの整理を改善し、管理と保守を容易にするのにも役立ちます。
JavaScriptコードのES6/ES2015機能を開始するには、ES6コードを現在のブラウザで実行できるES5コードに変換するBabelなどの翻訳者を使用できます。 Webpackなどのモジュールパッカーを使用して、JavaScriptモジュールを管理およびバンドルすることもできます。
ES6/ES2015と互換性の問題はありますか?
TypeScriptは、言語に静的タイプを追加するJavaScriptのスーパーセットです。 ES6/ES2015のすべての機能、さらにはJavaScriptにはない追加機能をサポートしています。タイプスクリプトコードはJavaScriptに翻訳されるため、JavaScript環境で実行できます。
ホームページ ウェブフロントエンド jsチュートリアル ES6(ES2015)およびそれ以降:JavaScriptバージョンの理解

ES6(ES2015)およびそれ以降:JavaScriptバージョンの理解

Feb 15, 2025 pm 12:13 PM

ES6 (ES2015) and Beyond: Understanding JavaScript Versioning

近年、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プロセス

に従う最初のバージョンです。

tc39プロセス

提案が今後のECMAScriptバージョンに受け入れられる前に、5段階を経る必要があります。

ステージ0:Strawman(序文)

これは、仕様にアイデアを提出できる便利なステップです。誰でも特集の提案をすることができます。

ステージ1:提案(提案)

提案の正式化の最初の段階。マスト:

このソリューションで修正された既存の問題を説明してください
  • APIの概要と、高度な実装の詳細、およびポリフィルやデモンストレーション
  • を提供します
  • 事前に潜在的な障害を議論します
  • 提案を採用および前進させるために、担当者を選択する必要があります。この人はTC39メンバーでなければなりません。

ステージ2:ドラフト(ドラフト) これは、この機能が将来のECMAScriptリリースに含まれる可能性があるマイルストーンです。ここでは、提案の構文とセマンティクスは、仕様で説明されている正式な言語を使用して詳細に説明されています。現時点では、実験的な実装を提供する必要があります。

ステージ3:候補者(候補者)

ここでは、提案のコンテンツとサポート技術のほとんどが開発されましたが、ユーザーや実装者(ブラウザーメーカーなど)からのさらなるフィードバックが開発されています。取得してアクションが取られると、要約と仕様の詳細は、指定されたレビュアーと指定された編集者によって最終決定され、署名されます。この段階では一貫した実装が必要なため、その後、重大な変更のみが受け入れられます。

ステージ4:終了(完了)

この提案は受け入れられており、ecmascriptに追加できます。したがって、それは本質的に:

    JavaScriptに記載されている
  • TEST262スイートの一部の受容テストは、機能のコンプライアンスと動作を実証するために書かれています
  • 少なくとも2つの準拠の実装が利用可能でリリースされています。これらはすべて、その堅牢性と開発者の可用性を証明しています
  • プル要求は、公式のECMA-262コードベースに提出され、仕様編集によって署名されました。
上記のコードベースの貢献ドキュメントでは、GitHubの問題の使用と、言語の追加を管理するためのリクエストをプルする詳細について詳しく説明します。

楽しみにしています

es2016

ES7としても知られている

これは、ECMAScriptの最初の小さい増分バージョンです。バグの修正に加えて、2つの機能を追加します。

array.prototype.includes

この例方法により、配列内の値を検索する操作が簡素化されます。

指数演算子

// ES2016 之前:
const hasBob = names.indexOf('bob') > -1;

// ES2016:
const hasBob = names.includes('bob');
ログイン後にコピー
ログイン後にコピー
ES2016の前に、Math.Pow(ベース、指数)を使用して指数操作を実行できます。このバージョンでは、独自の優先度を持っているオペレーター(**)を紹介します:

es2017

// ES2016 之前
Math.pow(5, 3); // => 125

// ES2016
5 ** 3; // => 125
ログイン後にコピー
ログイン後にコピー
ES2017(別名ES8)は、いくつかの便利な方法と構文構造を含むわずかに大きなバージョンです。

Async function

約束はコールバック地獄から私たちを救い出しましたが、彼らのAPIはまだ冗長性を示しています。非同期関数は、同期コードに非常に似た同期コードを使用してそれらを抽象化します。

文字列充填方法

string.prototype.padstart(長さ、パッダー)とパデンド(長さ、パッダー)は、長さの文字に達するまで、文字列の最初と端(これはオプション、デフォルトはスペースにデフォルト)に繰り返しパッダーを追加します。
// 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())が含まれます。

es2018

'foo'.padStart(6);          // => '   foo';
'foo'.padEnd(6);            // => 'foo   ';
'foo'.padStart(10, 'bar');  // => 'barbarbfoo';
'foo'.padEnd(10, 'bar');    // => 'foobarbarb';
ログイン後にコピー
執筆時点で、この最新リリースは少数の強力な新機能を紹介しています。

async iterator

promise.all()を使用すると、複数の約束の解析を待つことができますが、場合によっては、非同期に取得された値を反復する必要がある場合があります。これで、プロミスアレイを備えた非同期イテレーターを待つことができます:

// ES2016 之前:
const hasBob = names.indexOf('bob') > -1;

// ES2016:
const hasBob = names.includes('bob');
ログイン後にコピー
ログイン後にコピー

オブジェクトの展開と残りのプロパティ

表面的には、これらの2つの構文の改善は、Babelなどのコンパイラが利用可能であるため、JavaScript開発者の間で人気があります。オブジェクトの拡張と残差プロパティは、アレイの拡張と残差プロパティに似ており、オブジェクトプロパティの浅いコピーとグループ化の分解を可能にします:

// ES2016 之前
Math.pow(5, 3); // => 125

// ES2016
5 ** 3; // => 125
ログイン後にコピー
ログイン後にコピー

その他の受け入れられた提案には、promise.prototype.finally()、および正規表現とテンプレートリテラルの拡張が含まれます。

結論

JavaScriptは非常に短い期間で大幅に発達しました。これは、ECMAScript標準とTC39の優れた仕事によるものですが、以前のJavaScriptバージョンの管理と開発の安定性と凝集の欠如により、当初は困難な旅でした。

提案プロセスは比較的成熟しているため、言語は実用的で制御可能な方法でのみ改善できます。これはWeb開発者にとって素晴らしい時間です!

JavaScriptバージョン管理に関する

FAQ:ES6およびES2015

ES6とES2015の主な違いは何ですか?

ES6とES2015は本質的に同じです。 ES6は、ECMAによって国際的に標準化されたECMAScriptプログラミング言語の第6版です。 ES2015はES6の新しい名前であり、リリースされた年を反映しています。改名は、リリース年を反映し、バージョン番号を取り除くことを目的としています。これは混乱する可能性があります。

es6をES2015に変更する理由

リリース年を反映してバージョン番号を削除するために、ES6をES6に変更しました。この動きは、混乱を避け、JavaScriptが絶えず更新され改善されている動的言語であることを示すことです。新しい命名規則も、言語の更新と改善の規則性を示すのに役立ちます。

ES6/ES2015に導入された重要な機能は何ですか?

ES6/ES2015は、さまざまな宣言、より短い関数構文の矢印関数、文字列補間のテンプレートリテラル、オブジェクト指向プログラミングクラスのテンプレートリテラル、非同期プログラミングの約束など、JavaScriptの多くの新機能を紹介します。コード組織のモジュールなど。 let constES6/ES2015 JavaScriptエンコーディングを改善する方法は?

ES6/ES2015は、さまざまな方法でJavaScriptエンコードを改善します。言語をより強力で使いやすくする新しい構文と機能を紹介します。たとえば、矢印関数は機能書き込みにクリーンな構文を提供しますが、Promiseは非同期操作の処理を容易にします。モジュールの導入は、コードの整理を改善し、管理と保守を容易にするのにも役立ちます。

JavaScriptコードでES6/ES2015機能を使用して開始する方法は?

JavaScriptコードのES6/ES2015機能を開始するには、ES6コードを現在のブラウザで実行できるES5コードに変換するBabelなどの翻訳者を使用できます。 Webpackなどのモジュールパッカーを使用して、JavaScriptモジュールを管理およびバンドルすることもできます。

ES6/ES2015と互換性の問題はありますか?

ES6/ES2015の機能のほとんどは、ほとんどの最新のブラウザでサポートされていますが、古いブラウザには互換性の問題がある場合があります。互換性を確保するために、ブラウザからネイティブサポートを期待する機能を提供するPolyFillを使用できます。

JavaScriptとECMAScriptの違いは何ですか?

javascriptは、もともとNetscapeによって開発されたプログラミング言語です。 ECMAScriptは、ECMAによって国際的に標準化されたJavaScript標準バージョンです。 JavaScriptはECMAScriptを実装します。これは、ECMAScript標準で定義されているルールと構造に従うことを意味します。

ES6/ES2015後のJavaScriptの未来は何ですか?

TypeScriptとES6/ES2015の関係は何ですか?

TypeScriptは、言語に静的タイプを追加するJavaScriptのスーパーセットです。 ES6/ES2015のすべての機能、さらにはJavaScriptにはない追加機能をサポートしています。タイプスクリプトコードはJavaScriptに翻訳されるため、JavaScript環境で実行できます。

JavaScriptの以前のバージョンを使用するよりも、ES6/ES2015を使用することの利点は何ですか?

ES6/ES2015を使用すると、以前のバージョンのJavaScriptと比較して多くの利点があります。言語をより強力で使いやすくする新しい構文と機能を紹介します。また、コードの組織と保守性を向上させ、複雑なアプリケーションと大規模なコードベースをより適切にサポートします。

以上がES6(ES2015)およびそれ以降:JavaScriptバージョンの理解の詳細内容です。詳細については、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)

Python vs. JavaScript:学習曲線と使いやすさ Python vs. JavaScript:学習曲線と使いやすさ Apr 16, 2025 am 12:12 AM

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

JavaScriptとWeb:コア機能とユースケース JavaScriptとWeb:コア機能とユースケース Apr 18, 2025 am 12:19 AM

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScript in Action:実際の例とプロジェクト JavaScript in Action:実際の例とプロジェクト Apr 19, 2025 am 12:13 AM

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

JavaScriptエンジンの理解:実装の詳細 JavaScriptエンジンの理解:実装の詳細 Apr 17, 2025 am 12:05 AM

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Python vs. JavaScript:開発環境とツール Python vs. JavaScript:開発環境とツール Apr 26, 2025 am 12:09 AM

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。

JavaScript通訳者とコンパイラにおけるC/Cの役割 JavaScript通訳者とコンパイラにおけるC/Cの役割 Apr 20, 2025 am 12:01 AM

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

Python vs. JavaScript:ユースケースとアプリケーションと比較されます Python vs. JavaScript:ユースケースとアプリケーションと比較されます Apr 21, 2025 am 12:01 AM

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

Webサイトからアプリまで:JavaScriptの多様なアプリケーション Webサイトからアプリまで:JavaScriptの多様なアプリケーション Apr 22, 2025 am 12:02 AM

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

See all articles