ES5
主に使えない構文・オブジェクト
varはスコープの概念が薄いので不便だし、プログラムの解説記事では推奨しない構文として紹介されていることが多い
var
があると古のコードの印象を受ける


現代だと var
の使い道は以下の2つだけだと思う
minify時に変数宣言を短くする
自動生成コードの話なので気にしなくていい
let
は……?

var使うとdeno lintがお怒りになるが、どうにかできないのか
たぶんそういうこと

コード量を極限まで減らす
preactとかで使われてたはず
つまり常人がつかう宣言じゃない

Promise、fetchを実現するライブラリは結構あったので実質あったようなもの
非同期の処理を組むのが非常にだるい
これ知らなかった

> .entries()を使って、 [idx, e] of ...
のようにすれば良い。
.entries()はES2017からです

jsfor (const [idx, e] of ["A", "B", "C"].entries()) {
console.log(idx, e);
}
文字列の中に変数を入れたい場合は "foo" + bar + "baz"
とするしかなかった
テンプレートリテラルを使えれば \
foo${bar}baz\
と短くシンプルに書ける
そこまで短くなってないような...

bar + ""
みたいなテクニックもあった

なつかしすぎる

minifyなら今でも使うかな

.toString()
が +""
まで短くなるので
bar
を文字列に変換するコード
現代語訳: \
${bar}\
こっちのほうが読みにくいので素直にtoString書いたほうが良さそう

bar単体の変換であれば、可読性は
String(bar)
の方が高そう(Python民感)

pythonってそう書くんだ

f"{bar}"
でもよさそう
Pythonは
str(bar)
(
型名(値)
)で変換できますね

bar.toString()
もあり

↑の「〇〇でしか使えない」と書かれている部分の〇〇を未だに使っている参考書などは、情報が古い可能性があるので要注意

使えないわけじゃないのでいいのでは...

よくわからなければとりあえず
linterの指示に従って書き換えればなんとかなる

初心者さんにとっては
ESLintの環境構築がつらいので、Denoのオールインワン性はありがたそう

現代の便利構文で対応していないものが多く、ES5で高度なプログラムを書こうとしたらだいぶ大変な気がする
