みなさんこんにちは!GASおじさんです。
この記事ではGAS(JavaScript)における変数宣言について簡潔にまとめます。
また、当ブログの過去記事でletを多用してしまっていることについての反省の意を述べております。
簡潔に結論
- 変数宣言は基本的に
const
を使いましょう - 再代入が必要な時に
let
を使いましょう var
は使わないようにしましょう
簡潔にconst, let, varの違い
変数宣言 | 再代入 | 再宣言 | 用途 | 語源 |
---|---|---|---|---|
const | 不可 | 不可 | 再代入しない変数。 基本的に変数宣言はこれを使う。 | constant:「定数」 |
let | 可 | 不可 | 再代入が必要な変数。 カウンターやメッセージを生成するときに使う。 | let:「許す」「させる」「~と定義する」 ※歴史的なプログラミング文法に由来 |
var | 可 | 可 | 旧仕様。使用非推奨。 | variable:「変数」 |
その他の詳しい違いについては他のブログやChatGPTに解説を譲ります。
個人的letを使う場面
上記の通り変数の再代入が必要な時のみletを使うようにします。
しかし、再代入が必要な場面というのは結構限られてくるので、ほとんどconstを使うことになります。
「じゃあ再代入が必要な時ってどんなときよ?」
という疑問にお答えすべく、個人的にこういうときにletを使うことが多いです、という場面をあげてみます。
// for文でインクリメントするとき
for(let i = 0; i < 10; i++){
console.log(i);
}
// for文で合計金額を求めたい時とか
let totalCost = 0;
for(const cost of costs){
totalCost += cost;
}
// テキストメッセージやHTMLのメッセージを生成するとき
let html = '<h1>お知らせ</h1>';
if (isPositive()) {
html += '<p>今後はちゃんとconstを推奨していきます。</p>';
} else {
html += '<p>letを多用していたことを悔やんでいます。</p>';
}
当ブログの過去記事におけるletの使用について
当ブログの過去の記事では、letを多用している時期があります(具体的には2022年11月〜2023年3月までの記事です)。
執筆当時は筆者も未熟でありまして(今でもまだまだ未熟者ですが)、
「letとconstは好きな方を使えばいい」
「letのほうが3文字で書きやすいし基本letでいいっしょ!」
「constはグローバル定数の時使おう。文字通り”定数”だし」
という自分独自の運用ルールでコーディングしておりました。
しかし、プログラミングを人に教える立場として、やはりそのようなテキトーな姿勢は許されないなと途中から考えを改めるようになりました。
JavaScriptのベストプラクティスとして「再代入しない場合はconstを使用」がほぼ標準となっていますので、この標準に則って、当ブログでも基本はconstを使うように推奨していきたいと思います。
letを使っている過去記事をすべて修正しようと思いましたが、画像データや解説動画の修正が難しく、記事を修正してしまうと、記事と動画との間に食い違いが発生し、初心者読者を混乱させてしまいそうなので、あえてそのままにしておきます。代わりにこの記事をletを使ってしまっている各記事の冒頭に貼り付けておくことで免罪符とさせていただきます。const教の皆様、ご容赦ください。
コメント