Javascript は、クライアント側のフォーム検証と動的なユーザー インタラクションを Web ページに追加する方法として始まりました。ただし、最新の Javascript は非常に強力な言語であり (多くの煩わしさもあります)、ブラウザーまたはサーバー上で ( Node.jsなどを使用して) 実行できます。最新のブラウザーは、Web Workers、Canvas、Web GL、Web Audio API、XMLHTTPRequest (つまり AJAX)、タイマー、イベントなど、Javascript にのみ適用される (Dart のような別の言語が広くサポートされるまで) 多数の API を提供します。
ブラウザーの古い概念は、静的な HTML マークアップ ドキュメントをダウンロードしてレンダリングできるプログラムの概念です。ブラウザーは、主に Web アプリケーションを実行するためのオペレーティング システム + ライブラリ + API と考えると便利です。つまり、最新の Web ブラウザーの主な目的は、Javascript を実行し、Javascript 用の API を提供することです。HTML の主な目的は、Web アプリケーションを開始するためにロードする初期 Javascript ファイルを指定することです。HTML と CSS を使用して、DOM ツリー (Javascript API の可視部分) の初期状態を定義することもできます。ただし、HTML と CSS で静的に指定できるものはすべて、Javascript を使用して動的に生成することもできます。
そのコンテキストでは、WebSockets は、Web アプリケーション (つまり、ブラウザーで実行されている Javascript プログラム) が WebSocket サーバーへの低遅延の双方向通信チャネルを作成できるようにするブラウザーの API です。
更新:
「WebSockets は Javascript バージョン xxx で利用可能です」とだけ言わないのはなぜですか?
- Javascript は Web (Node.js など) だけのものではなく、これらの API は Javascript だけのものではありません。たとえば、Dart が有効になっている Chrome のバージョンを使用している場合、これらの同じ API を Dart から使用できます。script タグは他の言語を許可するので、将来のブラウザーはこれらの API にアクセスできる他の言語を実行する可能性があります。
- Javascript はECMAによって定義された言語であり、WebSockets、Web Workers などはHTML5 の一部としてW3Cによって定義されたブラウザー API です。ブラウザーのバージョンによって、使用可能な Web API と Javascript のバージョンが決まります。新しい API をサポートする古いバージョンの Javascript を搭載したブラウザーを使用している場合もあれば、その逆の場合もあります。