SP.ScriptHelpers に isNullOrEmptyString があった件
約 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 |
やはり、型までチェックしないと危ないことが判ります。
ディスカッション
コメント一覧
まだ、コメントがありません