JavaScriptのバージョン一覧|ブラウザ対応状況・バージョン指定方法など解説のカバー画像

JavaScriptのバージョン一覧|ブラウザ対応状況・バージョン指定方法など解説

公開日:2025/07/11最終更新日:2025/07/11

JavaScriptは、ECMAScriptの標準仕様に基づいて年々更新されています。JavaScript自体に明示的な「バージョン指定」は存在せず、使用する環境(ブラウザやエンジン)に応じて対応状況が異なります。


この記事では、JavaScriptの標準仕様である「ECMAScript」の基礎から、主要バージョンの特徴、各ブラウザの対応状況を確認する方法についてわかりやすく解説します。

1.JavaScriptの標準仕様であるECMAScriptとは?

ECMAScript(エクマスクリプト)とはJavaScriptの標準仕様であり、言語の機能や構文、挙動を定めた国際的な技術規格のことです。


JavaScriptという名称は、もともとNetscape社が開発したスクリプト言語に由来しますが、言語の仕様そのものは1997年にECMA International(欧州電子計算機工業会)によって「ECMA-262」として標準化されました。この標準仕様がECMAScriptです(参照:ECMAScript® 2026 Language Specification|ECMA International)。


ECMAScriptの策定と更新は、ECMA Internationalの技術委員会「TC39(Technical Committee 39)」によって進められており、JavaScriptの他にもActionScriptやJScriptといった言語もECMAScriptに準拠しています。ただし、ECMAScriptとJavaScriptはほぼ同義として扱われることが一般的です。


例えば、開発者が日常的に利用するlet・const・アロー関数といった機能は、すべてECMAScriptのバージョンアップによって導入された仕様です。JavaScriptが継続的に進化しているのは、ECMAScriptの更新に沿って各ブラウザが新機能に対応しているからです。


また、ECMAScriptは年次で更新されており2015年の「ECMAScript 2015(ES6)」以降は、「ES2016(ES7)」「ES2017(ES8)」のように毎年新しいバージョンがリリースされる体制となっています。各バージョンのドラフト仕様は、TC39のGitHubや公式サイト上で公開されています(参照:TC39|GitHub)。

2.JavaScriptの主なバージョン一覧と特徴

JavaScriptの進化はECMAScriptのバージョンごとの仕様改定によって段階的に進んでおり、バージョンごとの特徴を把握することで、使用可能な機能や記法の違いを理解しやすくなります。


以下に、代表的なバージョンとその主な機能を整理します。

バージョン

略称

説明

ECMAScript 1

ES1

JavaScriptの標準仕様として初めて公開。基本的な構文やオブジェクトが定義された

ECMAScript 2

ES2

ISO準拠のための編集的修正。機能面での大きな追加はなし

ECMAScript 3

ES3

正規表現、例外処理、厳密な等価演算子(===)などが導入され、広く普及。旧ブラウザとの互換性あり

ECMAScript 4

クラスやモジュールなど多くの新機能を提案したが、複雑さなどから標準化されず破棄

ECMAScript 5

ES5

strict mode、JSON対応、Object.defineProperty、配列メソッド追加など、近代JavaScriptの基礎を確立

ECMAScript 5.1

ES5.1

ECMAScriptをISO/IEC 16262に準拠させるための小規模修正

ECMAScript 2015

ES2015/ES6

let / const、アロー関数、クラス、モジュール(import/export)、Promiseなどが導入され、大規模アップデートとなった

ECMAScript 2016

ES2016/ES7

Array.prototype.includes、指数演算子(**)を追加

ECMAScript 2017

ES2017/ES8

async/await、Object.entries / Object.values、文字列パディングなどを追加

ECMAScript 2018

ES2018/ES9

Promise.prototype.finally、非同期イテレータ(for await...of)、スプレッド構文のオブジェクト対応など

ECMAScript 2019

ES2019/ES10

Array.prototype.flat、Object.fromEntries、trimStart / trimEndなどを追加

ECMAScript 2020

ES2020/ES11

??(null合体演算子)、?.(オプショナルチェーン)、globalThisなど、記述簡略化に寄与する構文が追加

ECMAScript 2021

ES2021/ES12

String.prototype.replaceAll()、Promise.any()、論理代入演算子(&&=、||=、??=)、数値区切り文字(_)などが追加された

ECMAScript 2022

ES2022/ES13

at()、top-level await、Error cause、Object.hasOwnなどが追加

ECMAScript 2023

ES2023/ES14

findLast()、findLastIndex()、ハッシュバング(#!)のサポートなど、細かな強化

ECMAScript 2024

ES2024/ES15

・Object.groupBy() / Map.groupBy():イテラブルをキー関数で分類してオブジェクトまたは Map を生成する静的メソッド

・Setに対するメソッド拡張(.union(), .intersection(), .difference() など)

JavaScriptの関数的記法によるデータ操作性が向上している


関連記事

JavaScriptのalert完全ガイド|自動で閉じる方法や非推奨理由、alert以外の方法を紹介


JavaScriptの正規表現|フォーマットチェックやmatchなど実務で使える正規表現一覧

3.ブラウザごとのJavaScriptバージョン対応状況を確認する方法

JavaScriptの新機能を使用する際は、対象ブラウザがその機能に対応しているかを事前に確認しましょう。業務システムや幅広いユーザー層を対象とするWebサービスでは、ブラウザ対応状況を踏まえた機能選定が必要不可欠です。


JavaScriptの新しい構文やAPIは、ECMAScriptの仕様として追加された後、各ブラウザのJavaScriptエンジンで段階的に実装されます。しかし、すべてのブラウザが同時に対応するわけではありません。古いブラウザや特定のデバイス環境では、最新の機能が未対応のケースもあります。


JavaScriptの構文や機能の対応状況は、「Can I use」で確認できます。使いたい機能をキーワードで検索すると各ブラウザの対応状況が一覧で確認できます。例えば、アロー関数が使用可能かを調べたい場合、以下の手順で確認します。

  1. https://caniuse.com/にアクセス

  2. 検索欄に"arrow"や"arrow functions"と入力

  3. 「Arrow functions」の項目が表示される

  4. 各ブラウザ(Chrome、Edge、Firefox、Safari、IEなど)の対応状況が一覧表として表示される

緑:対応済み

赤:非対応


関連記事

Node.jsとは?JavaScriptでサーバーサイド開発をするための環境構築方法や開発利用シーンも解説

4.JavaScriptのバージョンを指定して使う方法はあるか?

JavaScript自体にはバージョンを直接指定して実行する仕組みは存在しませんが、使用する構文や機能の制限・変換は、トランスパイラやビルドツールを用いることで実現可能です。


JavaScriptは、HTMLの<script>タグで実行される場合、ECMAScriptのどのバージョンを使用するかを明示的に指定する方法は標準として用意されていません。そのため、開発時に任意のバージョンに対応したコードに変換したい場合は、Babelなどのトランスパイラを利用します。


Babelの@babel/preset-envを用いて、新しいバージョンのJavaScriptを古いバージョンに変換して、古いブラウザでも実行できるようにします。例えば、次のような設定で「IE11まで対応するように」ES6+のコードをES5へ変換できます。

{

  "presets": [

    ["@babel/preset-env", {

      "targets": {

        "ie": "11"

      }

    }]

  ]

}

このように、実際にはJavaScriptそのものにバージョンを明示するのではなく、「出力されるコードの互換性レベルを設定する」という考え方になります。


関連記事

TypeScriptとJavaScriptの違い【初心者向け】互換性や変換方法など徹底解説


TypeScriptでできること | JavaScriptとの違いや使われる理由・将来性をわかりやすく解説

5.まとめ

JavaScriptはECMAScriptという標準仕様に基づいて年々進化しています。開発者にとっては、プロジェクトの対象ブラウザや実行環境に応じて、どのバージョンまでの機能が使用可能かを正確に把握しておくことが不可欠です。


今後もECMAScript仕様は継続的に更新されていくため、Webエンジニアやコーダーは、変化に対応する知識と調査スキルをアップデートしていく必要があります。


安定した開発と継続的な保守を両立するためにも、JavaScriptのバージョンごとの特性と対応環境を正しく理解し、実装に活かしていきましょう。


本記事が皆様にとって少しでもお役に立てますと幸いです。


フリーランスボード」は、数多くのフリーランスエージェントが掲載するITフリーランスエンジニア・ITフリーランス向けの案件・求人を一括検索できるサイトです。


開発環境、職種、単価、稼働形態、稼働日数など様々な条件から、あなたに最適なフリーランス案件・求人を簡単に見つけることができます。

単価アップを目指す方や、自分の得意なスキルを活かせる案件に参画したい方は、ぜひ「フリーランスボード」をご利用ください。


自身に最適なフリーランスエージェントを探したい方はこちらよりご確認いただけます。

JavaScriptのバージョン一覧|ブラウザ対応状況・バージョン指定方法など解説に関するよくある質問

ECMAScriptとは何ですか?

JavaScriptのバージョンはどのように決まりますか?

ECMAScriptは誰が策定・更新していますか?

ECMAScriptとJavaScriptの関係は何ですか?

ECMAScript 2015(ES6)で導入された主要機能は何ですか?

古いブラウザで最新のJavaScript機能は使えますか?

ブラウザのJavaScript対応状況を確認する方法は?

ECMAScript 5(ES5)はどのような特徴がありますか?

ECMAScript 2020(ES11)で追加された便利な構文は?

JavaScriptのバージョンを直接指定できますか?

無料で登録したらスカウトを待つだけ フリーランスの新しい仕事探しを始めよう

この記事の監修者

笠間 慎

大学卒業後、人材紹介会社にコンサルタントとして従事。フリーランスとして独立。その後、フリーランス案件サイト「フリーランススタート」の立ち上げに編集長兼ライターとして参画し、月間30万人が利用する人気メディアへと成長させる。 2024年より、フリーランスボード編集長に就任。自身の経験を元に、フリーランスの活躍を支援する情報を発信している。

運営者情報

「フリーランスボード」はINSTANTROOM株式会社によって運営されています。編集は同社のフリーランスボードコンテンツ制作チームが担当しています。

会社名

INSTANTROOM株式会社

設立年月日

2021年3月31日

事業内容

フリーランスボード

ギョーテン

EngineerDASH

FreelanceBase

コンテンツ制作

運営ポリシー

フリーランスボードは、すべてのフリーランスが安心して活躍できる社会を目指し、公平かつ信頼できる情報を分かりやすく提供することに努めます。 私たちは、一次情報に基づいた正確なコンテンツや求人案件情報を通じ、 フリーランスの皆さまが最適な案件選びやキャリア形成を行えるようサポートします。

フリーランスボードの調査リリース

ITフリーランス及びフリーランスエージェント市場白書 2025フリーランスエージェント及びITフリーランス人材の市場調査【2024年版】

フルリモート案件を 無料登録した方限定で配信中

目次

1.JavaScriptの標準仕様であるECMAScriptとは?

2.JavaScriptの主なバージョン一覧と特徴

3.ブラウザごとのJavaScriptバージョン対応状況を確認する方法

4.JavaScriptのバージョンを指定して使う方法はあるか?

5.まとめ