SP.ScriptHelpers に isNullOrEmptyString があった件

2020/04/18

約 3 ヶ月開発してて気がついたんだけど、SP.ScriptHelpers に Null や Undfined、Empty を判定するメソッドが生えていた。

  • SP.ScriptHelpers.isNullOrEmptyString();
  • SP.ScriptHelpers.isNullOrUndefined();
  • SP.ScriptHelpers.isNullOrUndefinedOrEmpty();
  • SP.ScriptHelpers.isUndefined();

今まで自作の関数読んでたよ…
人はこうやって大人になっていくんだね(白目

コード読んだから何やってるか判るけど、とりあえず動作確認表を作ってみた。
ついでに JavaScript での判定も表にした。

検証環境

  • SharePoint Online (2017/06/27 実施)
  • Windows 10 Pro 64bit
  • IE11, FF, Chrome

SP.ScriptHelpres での判定について

検証コードは雑に書くとこんな感じ。

var values = [null, 'null', undefined, 'undefined', false, 'false', '', 0, '0'];
for (var i in values){
    v = values[i];
    console.log(SP.ScriptHelpers.isNullOrUndefinedOrEmpty(v));
}
No. conditions null ‘null’ undefined ‘undefined’ false ‘false’ 0 ‘0’
1 isNullOrEmptyString(v) true false true false false false true false false
2 isNullOrUndefined(v) true false true false false false false false false
3 isNullOrUndefinedOrEmpty(v) true false true false false false true false false
4 isUndefined(v) false false true false false false false false false

ちゃんと予定通りの動きをしてくれている(まぁコード見れば当たり前ですが)。

JavaScript での判定について

ついでに JavaScript での判定も表にした。

No. conditions null ‘null’ undefined ‘undefined’ false ‘false’ 0 ‘0’
1 v == null true false true false false false false false false
2 v === null true false false false false false false false false
3 v == "null" false true false false false false false false false
4 v === "null" false true false false false false false false false
5 v == undefined true false true false false false false false false
6 v === undefined false false true false false false false false false
7 v == "undefined" false false false true false false false false false
8 v === "undefined" false false false true false false false false false
9 typeof v == undefined false false false false false false false false false
10 typeof v === undefined false false false false false false false false false
11 typeof v == "undefined" false false true false false false false false false
12 typeof v === "undefined" false false true false false false false false false
13 v == false false false false false true false true true true
14 v === false false false false false true false false false false
15 v == "false" false false false false false true false false false
16 v === "false" false false false false false true false false false
17 v == "" false false false false true false true true false
18 v === "" false false false false false false true false false
19 v == 0 false false false false true false true true true
20 v === 0 false false false false false false false true false
21 v == "0" false false false false true false false true true
22 v === "0" false false false false false false false false true

やはり、型までチェックしないと危ないことが判ります。