JavaScript The Good Partsを読んだ
読んだ。きっかけはTypeScriptの関数型言語好き向けの紹介ページで事前知識として要求されていたから。読んでよかったと思う。しっかりJSの知れたのではないかと(その判定はまだできないが)。とはいえまだまだ知るべきGood Partsはある気がする、というのもconst
とかlet
が説明されていないので、情報が古いだろうと感じたから。プロトタイプの話が載っていたり、thisの動的な意味の変化のこととか、var
のスコープとかを説得力をもって説明してくれたのはとてもありがたい。そういう点で読んでよかったと思う。DOMやevent handlerなど、ブラウザ周りの話を知りたい。
JSがSchemeに近い部分があることを知られて良かったと思う(Schemeのletがあればどんなに幸せだろうと思うけど)。 JSには偏見しかなかったけど、良い言語に思えてきた。TypeScriptも知りたい。DOMとevent handlerが先だが。 UIを扱うにはJSが強い?C# with Unityもあるのか? TSよりも関心はDOMやevent handlerにある。
JSのlet
を勉強している。情報源はMDN。var
が作るスコープがレキシカルスコープではないことは既に知っている。let
はマシだが、SchemeとかOCamlで期待するような感じにはならない。MDN 一時的なデットゾーンで解説されている。
MDNでも触れられているが、let
の右側(let x = <ここ>
)が常にこのletが作るスコープに所属することになる。なので、常に束縛する変数と同じ名前はlet
の右側には出現できない(e.g., let x = x.foo
は常にエラー)。その他に、同じブロックに同じ変数に対するlet
を複数回使えない。シャドーイングが不便。これらはすべて良くないとは思うが、そんなに大きな問題でも無い気はする。
let
の仕様によって、JSでブロックを使う意味が生まれた?[^fn]switch
でそれぞれのブランチのスコープを区切るためにブロックを使うテクニックが紹介されている。
[^fn]この疑問符は、他の用法はあったのだろうか、という意図。