ES5
主に使えない構文・オブジェクト
varはスコープの概念が薄いので不便だし、プログラムの解説記事では推奨しない構文として紹介されていることが多い varがあると古のコードの印象を受けるtakker.iconMijinko_SD.icon
現代だとvarの使い道は以下の2つだけだと思う
minify時に変数宣言を短くする
自動生成コードの話なので気にしなくていい
letは……?綾坂こと.icon
var使うとdeno lintがお怒りになるが、どうにかできないのか
たぶんそういうことtakker.icon
コード量を極限まで減らす
preactとかで使われてたはず
つまり常人がつかう宣言じゃないtakker.icon
Promise、fetchを実現するライブラリは結構あったので実質あったようなもの
非同期の処理を組むのが非常にだるい
これ知らなかったtakker.icon
おまけ: for-ofでインデックス欲しい
.entries()を使って、[idx, e] of ...のようにすれば良い。
.entries()はES2017からですwho.icon
code:js
console.log(idx, e);
}
文字列の中に変数を入れたい場合は"foo" + bar + "baz"とするしかなかった
テンプレートリテラルを使えれば\`foo${bar}baz\`と短くシンプルに書ける
そこまで短くなってないような...bsahd.icon
bar + ""みたいなテクニックもあったtakker.icon
なつかしすぎるMijinko_SD.icon
minifyなら今でも使うかなbsahd.icon
.toString()が+""まで短くなるので
barを文字列に変換するコード
現代語訳:\`${bar}\`
こっちのほうが読みにくいので素直にtoString書いたほうが良さそうbsahd.icon
bar単体の変換であれば、可読性はString(bar)の方が高そう(Python民感)Mijinko_SD.icon
pythonってそう書くんだtakker.icon
f"{bar}"でもよさそう
Pythonはstr(bar)(型名(値))で変換できますねMijinko_SD.icon
bar.toString()もありtakker.icon
↑の「〇〇でしか使えない」と書かれている部分の〇〇を未だに使っている参考書などは、情報が古い可能性があるので要注意Mijinko_SD.icon
使えないわけじゃないのでいいのでは...bsahd.icon
よくわからなければとりあえずlinterの指示に従って書き換えればなんとかなるtakker.icon 初心者さんにとってはESLintの環境構築がつらいので、Denoのオールインワン性はありがたそうMijinko_SD.icon 現代の便利構文で対応していないものが多く、ES5で高度なプログラムを書こうとしたらだいぶ大変な気がするMijinko_SD.icon