目次
これは、仕様にアイデアを提出できる便利なステップです。誰でも特集の提案をすることができます。
提案の正式化の最初の段階。マスト:
ステージ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)

javascriptの分解:それが何をするのか、なぜそれが重要なのか javascriptの分解:それが何をするのか、なぜそれが重要なのか Apr 09, 2025 am 12:07 AM

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

JavaScriptの進化:現在の傾向と将来の見通し JavaScriptの進化:現在の傾向と将来の見通し Apr 10, 2025 am 09:33 AM

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

JavaScriptエンジン:実装の比較 JavaScriptエンジン:実装の比較 Apr 13, 2025 am 12:05 AM

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

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

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

JavaScript:Web言語の汎用性の調査 JavaScript:Web言語の汎用性の調査 Apr 11, 2025 am 12:01 AM

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

next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合) next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合) Apr 11, 2025 am 08:22 AM

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

C/CからJavaScriptへ:すべてがどのように機能するか C/CからJavaScriptへ:すべてがどのように機能するか Apr 14, 2025 am 12:05 AM

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

next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合) next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合) Apr 11, 2025 am 08:23 AM

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

See all articles