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