ES6では変数の宣言にletとconstどっちを使うべきか?
普通に考えたら、タイプ数も少ないし、letを使うのが順当な気もします。
が、constの方が再代入できないし、いいんじゃないかという思いもあり、どっちにしようか迷ってました。
そこで、いろいろとググってみたところ、下記ページをみつけました。
曰く、どんな言語でもconst/final/readonly/whatever
を使いなさいと。
理由は、
- 変えていいものと変更しちゃダメなものを明示できる
- ツールでバグを検出できる
とのこと。
かなり納得。
パフォーマンス上の懸念もありましたが、babelで変換後のソースを見ても、普通にvarに置き換わるだけなので、特に問題なさそう。
ま、const array = [];
とかはリストの中身も変更できちゃうので、完全にイミュータブルという訳ではないですが、バグ発生の確率を減らせるならconstの方がベターかなという結論に至りました。