5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GASでも迷う! var / let / const の使い分け

Last updated at Posted at 2025-12-02

本記事では、GAS(GoogleAppScript)・JavaScriptにおける変数定義(var / let / const)の使い分けについてまとめました。

自分自身がGASでコードを書いている際によく迷ったので、同じような方の参考になれば幸いです。

GAS と JavaScript における違い

まず、「GASとJavaScriptでは、変数定義の使い分けに違いがあるのでは?」と思うかもしれないが、違いはない

GASはJavaScript(特にES5時代)をベースにして作られているため、文法はほとんど同じ。更に、"V8ランタイム"のおかげで最新のJavaScriptの文法も大体使えるようになっている。(ただし全く同じではない)

そのため、変数定義に関してもJavaScriptとGASで差はない。

よくある誤解

var / let / constの違いを、なんとなく「constは不変、letvarは変更可」みたいに思ったことはないだろうか。(自分はずっとこう捉えていた...)
これでも別に間違ってはいないのだが、以下のような誤解が生まれやすい。

  • constは不変 → constは中身の変更もできない(例:配列をconstで定義すると要素の追加はできない)

  • varletは変更可 → varletの働きは同じだからどっちを使っても良い

↑これらは大きな間違いなので注意!!

結論だけ言うと、配列などでもconstが基本・varはほとんど使わないという理解が適している。
細かい理由をこれから説明していく。

const とは

const = 再代入ができない定義方法。

基本的にこれを使う。

ここで注意が必要なのは、「再代入」ができないだけで、「中身の変更」は可能であるという点である。

例えば配列で「中身の変更」を行っても、変数が呼ばれたときに参照する配列は定義したときの配列から変わらない。そのため、constで定義していても中身の変更はできる。

コード例
const arr = [];

arr.push(1); //OK
arr[0] = 2;  //OK

arr = [1, 2, 3]; //これは再定義なのでエラー

let と var とは

let = 再代入可能な定義方法。

主にfor文のカウンターや、状態を更新する変数に使う。

varも再代入可能だが、letとは以下のような違いがあるため基本的に使用しない。

スコープ 再宣言
let ブロック
var 関数

スコープ

let{}の中でのみ有効で、varは関数内でずっと有効になる。つまりvarはブロックを無視するため、使用するとバグが起こりやすくなってしまう。

var
if (true) {
  var x = 1;
}

console.log(x); // 1  ← 外に出てくる
let
if (true) {
  let y = 1;
}

console.log(y); // ReferenceError  ← 外に出ない

再宣言

letは再宣言できないが、varは再宣言することができる。同じ変数名を上書きしてもエラーにならないvarは危険。

var
var a = 1;
var a = 2; // OK
let
let b = 1;
let b = 2; // Error: Identifier 'b' has already been declared



※再宣言と再代入は言葉が似ているが、別の操作。

  • 再宣言 → 同じ名前の変数をもう一度宣言
再宣言
let a = 1;   // 宣言
let a = 2;   // 再宣言
  • 再代入 → すでにある変数に新しい値を入れる
再代入
let a = 1; // 宣言
a = 2;     // 再代入

結論

  • 基本はconst
  • ループ時など再代入が必要な時のみlet
  • varは危険なので使わない

という使い分けをすれば安全。

さいごに

今回はGASでもよく迷うvar / let / constの使い分けについてまとめました。

シンプルなルールさえ意識すれば安全なコードを書けるようになります。
迷ったとき参考にしていただければ幸いです。

5
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?