なっく日報

技術やら生活やらのメモ

ES6では変数の宣言にletとconstどっちを使うべきか?

普通に考えたら、タイプ数も少ないし、letを使うのが順当な気もします。

が、constの方が再代入できないし、いいんじゃないかという思いもあり、どっちにしようか迷ってました。

そこで、いろいろとググってみたところ、下記ページをみつけました。

programmers.stackexchange.com

曰く、どんな言語でもconst/final/readonly/whateverを使いなさいと。

理由は、

  • 変えていいものと変更しちゃダメなものを明示できる
  • ツールでバグを検出できる

とのこと。

かなり納得。

パフォーマンス上の懸念もありましたが、babelで変換後のソースを見ても、普通にvarに置き換わるだけなので、特に問題なさそう。

ま、const array = [];とかはリストの中身も変更できちゃうので、完全にイミュータブルという訳ではないですが、バグ発生の確率を減らせるならconstの方がベターかなという結論に至りました。