確認した環境
- Mac Firefox 30.0
- Windows Google Chrome: 91.0.4472.77
false 扱いされる値
JavaScript で false な扱いをされる値は 6 つある。
false, 0, "", null, undefined, NaN
var falseVals = [false, 0, "", null, undefined, NaN];
for (var i in falseVals ) {
if ( falseVals[i] ) {
console.log("true val: " + falseVals[i]);
} else {
console.log("false val: " + falseVals[i]);
}
}
false val: false
false val: 0
false val:
false val: null
false val: undefined
false val: NaN
空文字列が false 扱いされるというのがハマりどころな感じ。
さらに気をつけなきゃいけないところは、ここで false 扱いされる値が == fasle でないというところ。
var falseVals = [false, 0, "", null, undefined, NaN];
for (var i in falseVals) {
if ( falseVals[i] == false ) {
console.log("false is equal " + falseVals[i]);
} else {
console.log("false is not equal " + falseVals[i]);
}
}
false is equal false
false is equal 0
false is equal
false is not equal null
false is not equal undefined
false is not equal NaN
分かってはいても混乱しそう。