値があるかどうかのチェック的なところでいつも迷うやつ。
undefined == null
は true
undefined == null
true
undefined != null
false
0==null
0==undefined
は false
0 == null
false
0 == undefined
false
0は値として受け付けたいけどnullやundefinedははじきたいという時に使える
arr = arr.filter(function(elem){
return elem != null;
});
追記
これでもいけるっぽい?
arr = arr.filter(function(elem){
return !!elem;
});
と思ったけどこれだと0もはじくので少し挙動が異なる。
!!undefined
false
!!null
false
!!0
false
!!''
false
でもって、空文字 ''
はnullとは等価にならない。(一つ目の方法では受け付けられる)
'' == null
false
0
と ''
は等価
0 == ''
true
// 厳密等価演算子ならfalse
0 === ''
false
0 件のコメント:
コメントを投稿