(Web関連用語)
厳密な比較演算子 === において undefined と null は区別されるが、ゆるい比較演算子 == においては両者は区別されない。
0 や 空文字列のような falsy な値(false とみなされる値)は受け付けつつ、null と undefined を弾きたい、という場面において、「null とのゆるい比較演算子による比較」は歴史的にもよく使われている。
console.log(undefined === null); // false
console.log(undefined == null); // true
function checkValue(value) {
if (!value) {
console.log("value is falsy.");
}
if (value == null) {
console.log("value is null or undefined.");
}
}
checkValue(); // value is falsy & value is null or undefined
checkValue(""); // value is falsy
checkValue(0); // value is falsy