hakeの日記

Windows環境でプログラミングの勉強をしています。

javascript 何をfalseと判定するか

if文などの条件に渡されたときにfalseと判定されるもの。

<!DOCTYPE html>
<html lang='ja'>
<head>
	<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
	<title>false判定</title>
	<script type="text/javascript">

	function print(str){
		var s = str + '<br>';
		document.getElementById('result').innerHTML += s;
	}

	function check_bool(v){
		if(v){ return "true";}
		return "false";
	}


	window.onload = function(){
		var u;
		var i = parseInt("hoge");

		print("true  -> "  + check_bool(true));
		print("false -> " + check_bool(false));
		print("null  -> " + check_bool(null));
		print("undefined -> " + check_bool(u));
		print("NaN -> " + check_bool(i));
		print("1  -> " + check_bool(1));
		print("0  -> " + check_bool(0));
		print("-1 -> " + check_bool(-1));
		print("[] -> " + check_bool([]));
		print("{} -> " + check_bool({}));
		print("\"foo\" -> " + check_bool("foo"));
		print("\"\" -> " + check_bool(""));

	}

</script>
</head>
<body>
結果<br>
<div id='result'></div>
</body>
</html>

結果

結果
true -> true
false -> false
null -> false
undefined -> false
NaN -> false
1 -> true
0 -> false
-1 -> true
[] -> true
{} -> true
"foo" -> true
"" -> false