Movatterモバイル変換


[0]ホーム

URL:


コンテンツにスキップ
Wikipedia
検索

ECMAScript

出典: フリー百科事典『ウィキペディア(Wikipedia)』
この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。このテンプレートの使い方
出典検索?"ECMAScript" – ニュース ·書籍 ·スカラー ·CiNii ·J-STAGE ·NDL ·dlib.jp ·ジャパンサーチ ·TWL
(2020年6月)
ECMAScript
パラダイム関数型プログラミング、マルチパラダイムプログラミング、プロトタイプベース命令型プログラミング ウィキデータを編集
登場時期1997年 (28年前) (1997)
開発者ブレンダン・アイク ウィキデータを編集
最新リリースECMA-262 14th Edition (ECMAScript 2023)[1]/2023年6月 (1年前) (2023-06)
型付けダック・タイピング、弱い動的型付け
方言JavaScript,ActionScript,JScript,QtScript,DMDScript,InScript
影響を受けた言語SelfHyperTalkAWKC言語CoffeeScriptPerlPythonJavaScheme ウィキデータを編集
ウェブサイトecma-international.orgウィキデータを編集
拡張子es ウィキデータを編集
テンプレートを表示
ECMAScript
拡張子.es
MIMEタイプtext/javascript[注 1]
開発者サン・マイクロシステムズ
Ecma International
初版1997年6月 (27年前) (1997-06)
最新版
14th Edition (ECMAScript 2023)
(2023年6月 (1年前) (2023-06))
種別スクリプト言語
派生元JavaScript
ウェブサイト

プログラミング言語

カテゴリ /テンプレート

ECMAScript(エクマスクリプト)は、Ecmaインターナショナルにおいて標準化されたJavaScript国際規格である。また、ISO/IEC JTC 1においてはISO/IEC 22275:2018[注 2]日本産業規格においてはJIS X 3060:2000として規格化されている[注 3][2]

バージョン

[編集]
この節は更新が必要とされています。
この節には古い情報が掲載されています。編集の際に新しい情報を記事に反映させてください。反映後、このタグは除去してください。2022年3月

ECMAScript仕様は、Ecma InternationalにてECMA-262という規格番号で標準化されている。改訂にあたっては版 (edition) が更新されている。

6th editionから、「ECMAScript 2015」仕様の名称に発行年が付加されることになった。以降、ECMAScriptは毎年改訂されることになり、以降特定の版を指す場合は、edition名ではなく年号つきの仕様書名で呼ばれることが推奨されている[3]

Edition公開日以前のバージョンとの違い編集者
11997年6月初版Guy L. Steele, Jr.
21998年6月Editionとしての仕様はそのままであり、ISO/IEC 16262 international standardに完全な対応をしたMike Cowlishaw
31999年12月正規表現、よりよい文字列の取り扱い、新しいコントロール構文、try/catch例外処理、より厳格なエラー処理、数字のその他の書式化フォーマットMike Cowlishaw
4放棄4th Editionは放棄された。言語の複雑化に関する政治的な差異による。いくつかの成果は5thの基礎として採用され、いくつかは6thの基礎となっている。
52009年12月"strictモード"、初期化時に発生しがちなエラーを回避するための追加仕様の追加。多くの曖昧な部分、および仕様に準拠しつつも現実世界の実装の融通の利く振る舞いを明確にした。いくらかの新機能、getterやsetter、JSONライブラリのサポート、より完全なオブジェクト属性リフレクション[4]Pratap Lakshman, Allen Wirfs-Brock
5.12011年6月[5]ISO/IEC 16262:2011規格と同様の表記に修正Pratap Lakshman, Allen Wirfs-Brock
6 (2015)2015年6月[6]クラスモジュール、イテレータ、for/ofループ、Pythonスタイルのジェネレータ、アロー関数、2進数および8進数の整数リテラル、Map、Set、WeakMap、WeakSet、プロキシ、テンプレート文字列、let、const、型付き配列、デフォルト引数、Symbol、Promise、分割代入、可変長引数Allen Wirfs-Brock
7 (2016)2016年6月[7]冪乗演算子、Array.prototype.includesBrian Terlson
8 (2017)2017年6月[8]非同期関数 (async/await)、SharedArrayBufferとAtomics、String.padStart/padEnd、Object.values/entries、Object.getOwnPropertyDescriptors、関数の引数における末尾のカンマ許容
9 (2018)2018年6月[9]オブジェクトに対するスプレッド構文、非同期イテレーション、Promise.prototype.finally、正規表現への機能追加Brian Terlson
10 (2019)2019年6月[10]Array.prototype.flat/flatMap、Object.fromEntries、String.prototype.trimStart/trimEndメソッドの追加。catchブロックの引数省略を許可。他Brian Terlson, Bradley Farias, Jordan Harband
11 (2020)2020年6月[11]オプショナルチェイニング演算子?.Null合体演算子??サポート。BigInt型の追加。動的importサポート。for-in文の順序保証。他Jordan Harband, Kevin Smith
12 (2021)2021年6月[12]String.prototype.replaceAllメソッド追加。Promise.any追加。??=&&=||= 演算子追加。数値の区切り文字としてのアンダースコア_サポート。弱い参照WeakRefサポート。Jordan Harband, Shu-yu Guo, Michael Ficarra, Kevin Gibbons
13 (2022)2022年6月[13]Array、String、TypedArrayに対して負数指定可能なatメソッド追加。静的クラスフィールドサポート。プライベートフィールド/メソッドサポート。トップレベルawaitサポート。Shu-yu Guo, Michael Ficarra, Kevin Gibbons
14 (2023)2023年6月[14]配列操作メソッドの追加、#!シバン (Unix))のサポート、WeakMapのキーにおけるSymbolの利用。Shu-yu Guo, Michael Ficarra, Kevin Gibbons

ECMAScriptにはいくつかの拡張が存在する。

  • ECMA-357 (ECMAScript for XML) - 2004年公開、E4Xとして知られる
  • ECMA-402(国際化API) - 2012年公開
  • ECMA-404 (JSON) - 2013年公開

EcmaはECMAScriptのための "Compact Profile" も定義した — ES-CP、あるいはECMA 327として知られる — リソースの厳しいデバイス用にデザインされている。ECMAScriptのいくつかの動的な機能(『eval』関数など)はオプションにされている。これにより、処理系はプログラムの振る舞いに対してより多くの仮定ができるようになり、その結果、より良いパフォーマンス・トレードオフを実行時に得ることができるようになる。HD DVD standardはECMAScript Compact Profileに準拠し、完全なECMAScriptの支援をより少ないメモリのデバイスで実行できるよう採用している。

文法

[編集]
→詳細は「JavaScript § 文法」を参照

方言およびその呼称

[編集]

ECMAScript は、ウェブブラウザをはじめとする多くのアプリケーションでサポートされている。DOMとの連携はドキュメントの操作を可能にする。

アプリケーション呼称最新バージョン対応するECMAScriptリビジョン
Mozillaおよびその派生品JavaScript1.8.5ECMA-262 5.1 edition
ECMA-357[呼称 1]
Internet ExplorerJScript(IE8まで)5.8ECMA-262 3rd edition
JavaScript (Chakra)11.0ECMA-262 5.1 edition
Google Chrome
Opera
JavaScriptECMA-262 5.1 edition
Safari (JSCore)JavaScriptECMA-262 5.1 edition
Konqueror (KJS)JavaScriptECMA-262 3rd edition
iCabInScriptECMA-262 3rd edition
Microsoft .NETJScript .NET10.0ECMA-262 4th草案[呼称 2]
Adobe FlashActionScript3ECMA-262 4th草案[呼称 3]
ECMA-357
Adobe AcrobatJavaScript1.5ECMA-262 3rd edition
Adobe Creative SuiteExtendScriptECMA-262 3rd edition
DMDScriptDMDScriptECMA-262 3rd edition
QtQtScriptECMA-262 3rd edition
Max/MSPJavaScript1.5ECMA-262 3rd edition
  1. ^Mozillaは1.8 Beta 1以降でE4Xをサポートしている。
  2. ^2001年頃のマイクロソフトの草案であり、独自に開発を進めたもので、現在のECMAScript 4草案とは大きく異なる。
  3. ^2001年頃のNetscapeの草案に近く、現在のECMAScript 4草案のサブセットに近い。

ECMAScript 4

[編集]
→「JavaScript § JavaScript 2.0」も参照

ECMAScript 4は過去2回仕様作成が挑戦されたが、仕様がまとまらず、失敗に終わっている。

1回目

[編集]

2000年〜2003年ごろ行われた。主に、旧Netscape[15]マイクロソフトによって行われたが、意見がまとまらずに、打ち切りとなった。この時の案はActionScriptへと引き継がれた。

2回目

[編集]

2007年〜2008年ごろ、2回目の仕様作成が行われた。大きく機能を追加される予定であったが、意見がまとまらず、2008年8月13日に、小規模の改善にとどまる、ECMAScript 3.1を進めることとなった[16][注 4]

以下のような予定があった。

実装

[編集]
  • V8 - C++ - Google Chromeブラウザで使われている
  • Rhino (Rhino) - Java
  • Narcissus - JavaScript
  • SpiderMonkey (SpiderMonkey) - C - Firefox/Mozillaブラウザで使われている
  • KJS - C++ - KDEのKonquerorブラウザで使われている
  • JavaScriptCore - C++ - MAC OS XのSafariブラウザやdashboardで使われている。KJSベース
  • NJS - C
  • SEE - Simple ECMAScript Engine - C
  • ixlib - C++
  • QSA - Qt Script for Applications - C++
  • DMDScript - C++/D
  • DMonkey - Delphi
  • FESI - Free EcmaScript Interpreter - Java
  • Scriptonite - Java
  • xwt - Java
  • JANET - Java
  • Epimetheus - C++ - Mozillaプロジェクトによる以前のECMAScript Edition 4草案の実装

脚注

[編集]
[脚注の使い方]

注釈

[編集]
  1. ^過去にはRFC 4329 で「application/ecmascript」とされていたが、互換性のためにRFC 9239 で廃止(OBSOLETE)され「text/javascript」に統一された。
  2. ^ISO/IEC 16262は、ISO/IEC 16262:1998ISO/IEC 16262:2002ISO/IEC 16262:2011と改訂されてきたが、2021年8月時点の最新のISO/IEC 22275:2018 Information technology — Programming languages, their environments, and system software interfaces — * ECMAScript Specification Suiteとして、
    • ECMA-262, ECMAScript Language Specification
    • ECMA-402, ECMAScript Internationalization API Specification
    • ISO/IEC 21778, Information technology — The JSON data interchange syntax (Adoption of ECMA-404)
    の最新規格を一括して参照するようになった。
  3. ^JIS X 3060:2000は、ISO/IEC 16262:1998(ES1相当)の日本語訳。
  4. ^仕様は、http://www.ecmascript.org/docs.php にて公開されている。

出典

[編集]
  1. ^ECMA-262. ECMAScript® 2023 language specification. 14th edition, June 2023” (英語). Ecmaインターナショナル (2023年6月). 2024年3月19日閲覧。
  2. ^JIS X 3060:2000, ECMAScript言語, Information technology -- ECMAScript language specification” (2000年6月30日). 2021年8月16日閲覧。 “対応国際規格:ISO/IEC 16262:1998 (IDT); IDT=identical(一致)”
  3. ^Some ECMAScript Explanations and Stories for Dave” (英語). wirfs-brock.com (2017年8月31日). 2025年1月14日閲覧。
  4. ^JavaScriptの変更, Part 1: EcmaScript 5
  5. ^ECMAScript Language Specification - ECMA-262 Edition 5.1
  6. ^ECMAScript 2015 Language Specification – ECMA-262 6th Edition”. 2025年3月17日閲覧。
  7. ^ECMAScript® 2016 Language Specification”. 2025年3月17日閲覧。
  8. ^ECMAScript® 2017 Language Specification”. 2025年3月17日閲覧。
  9. ^ECMAScript® 2018 Language Specification”. 2025年3月17日閲覧。
  10. ^ECMAScript® 2020 Language Specification”. 2025年3月17日閲覧。
  11. ^ECMAScript® 2020 Language Specification”. 2025年3月17日閲覧。
  12. ^ECMAScript® 2021 Language Specification”. 2025年3月17日閲覧。
  13. ^ECMAScript® 2022 Language Specification”. 2025年3月17日閲覧。
  14. ^ECMAScript 2023 Language Specification
  15. ^ECMAScript 4 Netscape Proposal”. www-archive.mozilla.org (2003年6月30日). 2025年1月14日閲覧。
  16. ^ECMAScript Harmony”. esdiscuss.org (2008年8月13日). 2025年1月14日閲覧。

関連項目

[編集]

外部リンク

[編集]
この節の外部リンクはウィキペディアの方針やガイドラインに違反しているおそれがあります。 過度または不適切な外部リンクを整理し、有用なリンクを脚注で参照するよう記事の改善にご協力ください。
方言
エンジン英語版
フレームワーク
ライブラリ
クライアントサイド
サーバーサイド
ライブラリ
人物
その他
コンピュータ・プログラミング言語
低水準言語
高水準言語
1950年代
1960年代
1970年代
1980年代
1990年代
2000年代
2010年代
架空の言語
https://ja.wikipedia.org/w/index.php?title=ECMAScript&oldid=104140219」から取得
カテゴリ:
隠しカテゴリ:

[8]ページ先頭

©2009-2025 Movatter.jp