GAS初心者必見!null判定の基礎と実践テクニック


GASでのnull判定の基本
プログラミングでは、nullはデータが存在しないことを示す特別な値です。GASでもこのnullの判定は重要なスキルです。
null値を判定する方法
最も基本的な方法は、直接データがnullであるかを判定することです。
function checkNull(value) {
if (value === null) {
Logger.log("この値はnullです");
} else {
Logger.log("この値はnullではありません");
}
}
このコードでは、===を使ってnullと比較しています。===は、型も含めて厳格に比較する演算子です。
その名も、
厳密等価演算子(げんみつとうかえんざんし)
です。値と型の両方が等しいかを比較するときに用いる演算子です。しっくりこなかったらGASの演算子も復習してみてください。
なぜ == で nullを判定しないのか?
えっ、なぜ「==」でnull判定しないのかですって?
それは、
null と undefinedを区別できないから
です。
特徴 | undefined |
null |
---|---|---|
意味 | 変数が宣言されたけれど値が設定されていない | 変数に「何もない」という値が 意図的に設定されている |
用途 | システムが自動的に使うことが多い | 開発者が意図的に「空」を表すために使う |
型 | undefined 型 |
object 型 |
==(等価演算子)は、
型が違っても値が等しいと“判断できる”なら true にする
という特徴があるので、これらnullとundefinedを一緒のものとして判定してしまうのです。
ということで、GASでのnull判定には厳密等価演算子(===)を使いましょう。
nullとundefinedの違いを復習したい方はこちらからどうぞ ↓
GASでのnull判定の実践テクニック
より実践的なnull判定テクニックをみていきましょう。
nullとundefinedを同時に判定する
null判定では「===」を用いましたが、
「==」を使えばnullとundefinedを同時に判定できます。
function checkNullOrUndefined(value) {
if (value == null) {
Logger.log("この値はnullまたはundefinedです");
} else {
Logger.log("この値はnullでもundefinedでもありません");
}
}
null合体演算子(Nullish Coalescing Operator)の活用
意図せず変数にnullやundefinedが入ったら大変なことになりますよね。
そんな時のために、デフォルト値を設定できる||演算子を使う方法もあります。
function getDefaultValue(value) {
var result = value || "デフォルト値";
Logger.log(result);
}
変数の値が、
false
0
”(空文字)
null
undefined
NaN
の場合、 || の右に書いたデフォルト値の値が変数に入るのです。
null、undefinedだけでなく、0やfalseも「偽」と判定されてしまうので注意が必要です。

練習問題:null判定のスクリプト作り
以下の条件に従ってGASのスクリプトを作ってみましょう。
- 配列の中身を全てチェックして、nullの項目があればログに「nullが見つかりました」と表示する。
- nullでない項目の数を数えてログに出力する。
解答・解説
function checkArrayForNull(arr) {
var nullFound = false;
var nonNullCount = 0;
for (var i = 0; i < arr.length; i++) {
if (arr[i] === null) {
nullFound = true;
} else {
nonNullCount++;
}
}
if (nullFound) {
Logger.log("nullが見つかりました");
}
Logger.log("nullでない項目の数は: " + nonNullCount);
}
// 使用例
var sampleArray = [null, 1, "catman", null, 3];
checkArrayForNull(sampleArray);
このスクリプトは、配列に対してループを実行し、nullが見つかるたびにnullFoundをtrueに設定します。要素がnullでない場合、nonNullCountをインクリメントします。プログラムは最後にこれらの結果をログに出力します。