2019年1月6日日曜日

JavaScript の 0 と null と undefined

値があるかどうかのチェック的なところでいつも迷うやつ。

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 件のコメント:

コメントを投稿