質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

561閲覧

配列もconstで宣言すべきか

umaru

総合スコア6

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/06/10 09:10

JavaScriptで、最近は再代入しない変数はすべてconstで宣言するべきだという風潮があります。
constで宣言した配列の中身を上書きすることはできますが、そうする配列もconstで宣言したほうが良いのでしょうか。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

プロジェクトの規約や人によるのかなぁという気がします。私は「const にする」派です。
明確にオブジェクト(配列含む)の中身も固定してしまいたい場合は Object.freeze を使ってしまえばコードを読む側にもそれを伝えることができますので、それで大体のケースはカバーできるかと思います。

例えば「この配列の中身は後から書き換えるんだ」という意図を持ってあえて let にする、という考えもあるかと思いますし、それは否定できるようなものでもありません。

投稿2020/06/10 09:29

htsign

総合スコア870

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

umaru

2020/06/10 09:38 編集

すみません、コメントを書いている途中に回答いただいたようで???? letを使う派も少なからずいるのですね。参考になります。 しかし、Object.freezeを使うという手段がある以上は一貫してconstを使う方が合理的な感じもしますね!
htsign

2020/06/10 09:54

そうですね、その方がいいと私も思います! 上では「例えば」と書いた通り「そういう人もいるだろうな」という想定で書いたもので、本当にそう思いながら書く人がいるかは、私には「たぶんいると思います」としか言えないです…。 const はあくまで「参照の固定」に過ぎない、という点で知らない人にはハマりポイントな気がします。
guest

0

ベストアンサー

違和感があるのは、わかります。私も違和感ありました。


再代入はできないので、「再代入をしてないよ」という意味でconstで宣言した方がいいと思います。
コードを読む人が楽になるかと思います。

投稿2020/06/10 09:20

Lhankor_Mhy

総合スコア36960

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

umaru

2020/06/10 09:33

なるほど、確かに再代入をしていないという一貫した基準でconstを使えば読む人も楽ですね! 少し違和感はありますが、constを使っていこうと思います。
guest

0

constで宣言した配列の中身を上書きすることはできますが、そうする配列もconstで宣言したほうが良いのでしょうか。

はい、配列のインスタンスを置き換えることがないならconstが適切です。

投稿2020/06/10 09:18

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

umaru

2020/06/10 09:50

ありがとうございます☺ なるほど、基準はあくまでインスタンスまるごと再代入するかということなんですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問