GASで変数の型を確認するためのベストプラクティス

最近、GASで変数の型の確認したい瞬間ありすぎて…どうしたらいいんでしょう?
猫男
猫男
catman
catman
猫男、新しいスキルを学ぶのは素晴らしいことだ。GASの変数の型を確認する方法、catmanが教えよう。次第にその不安も消えるさ。

GASの変数の型とは??

GASの「変数の型(かた)」とは、ズバリ、

変数の種類

のことです。

 

変数がどんな種類のデータかによって、エラーや予期しない動作が起きる場合があります。そのため、GASでの変数の型チェックは重要なのですね。

GASでよく登場する変数の型には以下のものがありますよ。

型(Type) 説明
number(数値) 数字を表す 42, 3.14
string(文字列) 文字や文章を表す "こんにちは", 'abc'
boolean(真偽値) 真か偽(Yes/No) true, false
object(オブジェクト) 複数の値をまとめた入れ物 {name: "catman", age: 30}
array(配列) 値を順番に並べたリスト [1, 2, 3], ["A", "B"]
Date(日付型) 日付や時刻を表す new Date()
null 「何もない」ことを明示的に表す null
undefined 変数がまだ値を持っていない undefined

 

catman
catman
GASにおいても、この基本的な型の理解は欠かせない。特にデータ処理の際に役立つだろう。

 

GASで変数の型を確認する方法

GASで型を確認する方法はいくつかあります。一挙にご紹介!

typeof演算子を利用する

typeof演算子は、変数の型を簡単に確認する方法の1つです。


function checkType(value) {
  Logger.log(typeof value);
}

checkType("文字列"); // 出力: string
checkType(42);    // 出力: number
checkType(true);  // 出力: boolean

このスクリプトでは、typeof演算子を使ってデータの型を判別しています。

typeof は演算子なので、関数呼び出しのような () は不要
typeofを使えば、簡単にデータの型を確認できるんですね!知らなかったです…!
猫男
猫男

Array.isArrayメソッドを使う

配列型を確認する際には、typeofだけでは不十分な場合があります。この時に便利なのがArray.isArrayメソッドです。


function checkArray(value) {
  Logger.log(Array.isArray(value));
}

checkArray([1, 2, 3]); // 出力: true
checkArray("Not an array"); // 出力: false

Array.isArrayメソッドは、その変数が配列かどうかを判定します。型の確認において、配列の扱いが多いGASでも活用できます。

カスタム版の型チェック

必要に応じて、より特化した型チェックを作成しましょう。

たとえば、以下のスクリプトは、特定のオブジェクト(日付)のインスタンスかどうかを確認するコードです。


function isItDate(value) {
  return value instanceof Date;
}

Logger.log(isItDate(new Date())); // 出力: true
Logger.log(isItDate("2023-01-01")); // 出力: false

instanceof演算子を使って、オブジェクトが日付のデータ型であるか確認してますね。

 

catman
catman
こうした型のチェックをうまく利用すれば、コードの信頼性も高まるだろう。最初は難しく感じるが、慣れると便利さがわかるさ。

 

練習問題

以下のコードを実行すると何が表示されるでしょうか?


function practice(value) {
  if (Array.isArray(value)) {
    Logger.log("これは配列です");
  } else if (typeof value === 'string') {
    Logger.log("これは文字列です");
  } else {
    Logger.log("他の型です");
  }
}

practice([10, 20, 30]);
practice("Hello, World!");
practice(100);

 

 

解答・解説


Logger.log("これは配列です"); // value が配列 [10, 20, 30] なので条件に合致
Logger.log("これは文字列です"); // value が文字列 "Hello, World!" なので条件に合致
Logger.log("他の型です"); // value が数値 100 なのでどちらにも合致せず

この練習問題では、Array.isArraytypeofを活用して、変数が配列か文字列かその他かを判断しています。

これで型の違いにも怖がらずにGASが使えます!ありがとう、catmanさん!
猫男
猫男
catman
catman
その調子だ猫男!型の確認ができれば、GASでもっと柔軟にスクリプトが書けるようになるぞ。