GASで変数の型を確認するためのベストプラクティス
最近、GASで変数の型の確認したい瞬間ありすぎて…どうしたらいいんでしょう?

猫男

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
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
こうした型のチェックをうまく利用すれば、コードの信頼性も高まるだろう。最初は難しく感じるが、慣れると便利さがわかるさ。
練習問題
以下のコードを実行すると何が表示されるでしょうか?
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.isArrayとtypeofを活用して、変数が配列か文字列かその他かを判断しています。
これで型の違いにも怖がらずにGASが使えます!ありがとう、catmanさん!

猫男

catman
その調子だ猫男!型の確認ができれば、GASでもっと柔軟にスクリプトが書けるようになるぞ。