GoogleAppScriptの”==”判定

GoogleAppScriptでNullやUndefined等の比較結果。


(undefinedとの比較の時だけ===を使用)

LHSが変数の場合

// /* var val; */
// var val;
// var val = undefined;
// var val = null;
// var val = 0;
// var val = false;
// var val = "";

var result1 = typeof(val) === "undefined";
var result2 = val === undefined;
var result3 = val == null;
var result4 = val == 0;
var result5 = val == false;
var result6 = val == "";
var result7 = !(val);

Logger.log(result1 + " " + result2 + " " + result3 + " " + result4 + " " + result5 + " " + result6 + " " + result7);
typeof(val) === undefined val === undefined val == null val == 0 val == false val == "" !(val)
/* var val; */ true exception exception exception exception exception exception
var val; true true true true
var val = undefined; true true true true
var val = null; true true
var val = 0; true true true true
var val = false; true true true true
var val = ""; true true true true

RHSが変数の場合

// /* var val; */
// var val;
// var val = undefined;
// var val = null;
// var val = 0;
// var val = false;
// var val = "";

var result1 = "undefined" === typeof(val);
var result2 = undefined === val;
var result3 = null == val;
var result4 = 0 == val;
var result5 = false == val;
var result6 = "" == val;

Logger.log(result1 + " " + result2 + " " + result3 + " " + result4 + " " + result5 + " " + result6 + " " + result7);
undefined === typeof(val) undefined === val null == val 0 == val fasle == val "" == val
/* var val; */ true exception exception exception exception exception
var val; true true true
var val = undefined; true true true
var val = null; true
var val = 0; true true true
var val = false; true true true
var val = ""; true true true

他の言語体系のような、左辺に来た時だけ暗黙的なキャストが行われる、というようなことはない。
変数が宣言されているかどうかをを含めた安全な確認方法はtypeof(val) === "undefined"

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です