JavaScript で String の値がどうなっていると false になるのか調べてみた。
調査したデータの中では、null, undefined, 空文字列の3種類のみが false になった。それ以外は false にならない。
以下に、調査用サンプルコード。
<html>
<head>
<script>
window.onload = function(){
var result = "";
// ヌル文字「\0」やバックスペース「\b」も試す
var list = [
null, undefined, "",
"\0", "\b",
"a\b", "0",
"-1", "a"
];
var b;
for(var i=0; i<list.length; i++){
if(list[i]){
b = true;
}else{
b = false;
}
result += "[" + list[i] + "]=[" + b + "]\n";
}
document.getElementById("display").innerText = result;
}
</script>
</head>
<body>
<div id="display"></div>
</body>
</html>
実行結果 (Web ブラウザ Google Chrome 上の表示)。
バックスペースもヌル文字も画面に表示はされないが、 false にはならないことがわかる。
Chrome からコピーして Mac OS X 上の Sublime Text 2 というテキストエディタにペーストしてみたらこんな表示に。
バックスペースわかりやすい。ヌル文字は表示されない。
"0" が false になるような気がしていたけど、あれは JavaScript じゃなくて PHP だったか。
ref. PHPでfalseと判定されるもの - maru source
tags: javascript
Posted by NI-Lab. (@nilab)