JavaScript
#プログラミング言語
https://gyazo.com/9554869ff3d86e22445cd012f17fd589
主な処理系: V8, SpiderMonkey
主な実行環境: Chromium, Firefox, Node.js, Deno
Java ではない
Webブラウザで動く唯一無二の言語
Webフロントエンドで必須
ECMA-262、ECMAScript
各種ブラウザ間で互換性のない JavaScript が作られて地獄が発生した過去
ES2015 以降は毎年新バージョンが公開
基本的にプロトタイプベースオブジェクト指向
クラス同士の継承関係ではなく、直接オブジェクトで継承が行われる
オブジェクトリテラルという形でどしどしシングルトンが作れる
ES5 でクラスの糖衣構文が入った
プロトタイプは忘れてよい
ほんのり関数型プログラミング
第1級関数、クロージャ、イテレータ、ジェネレータ
パイプライン演算子や部分適用構文のプロポーザルも上がっている
本当に通るのかはわからない
動的型付け 言語
強力な暗黙の型変換
静的型付けを求める人々には TypeScript が用意されている
エコシステムがつよい
ブラウザでコードを動かしたいがJavaScript は書きたくないという人たち
がJSへのコンパイラ (トランスパイラ) を作る (AltJS)
実行環境がユーザー端末のブラウザ
実行できる ECMAScript バージョンが不確定
しかし新機能は使いたい
ので Babel を使ったES2020→ES5のようなJS間トランスパイルをやる
処理系がやたら速いらしい
JIT をキメてカリカリにチューニングしたせいらしい