JS中的Boolean

	var boolean1 = true;
	var boolean2 = false;

	console.log(typeof boolean1); //boolean
	console.log(typeof boolean2); //boolean

  虽然Boolean类型的字面值只有两个,但ECMAScript中所有类型的值都有与这两个Boolean值等价的值:

  - 任何非零数值都是true,包括正负无穷大,只有0和NaN是false   - 任何非空字符串都是true,只有空字符串是false   - 任何对象都是true,只有null和undefined是false

	var boolean1 = Boolean(0);
	console.log(boolean1); //false

	var boolean2 = Boolean(1);
	console.log(boolean2); //true

	var boolean3 = Boolean(-1);
	console.log(boolean3); //true

	var boolean4 = Boolean("hello");
	console.log(boolean4); //true

	var boolean5 = Boolean("");
	console.log(boolean5); //false

	var boolean6 = Boolean(undefined);
	console.log(boolean6); //false

	var boolean7 = Boolean(null);
	console.log(boolean7); //false

利用上面所得到的结论,我们在JS中判断数据是否为空时就会简化,下面是一个简单的演示:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>用户登录</h1>
	<form action="/login" method="post">
		账号:<input type="text" id="username" name="username" value="" />
		<br>
		密码:<input type="password" id="password" name="password" value="" />
		<br>
		<input type="button" value="登录" onclick="checklogin()"/>
	</form>

	<script type="text/javascript">
		function checklogin(){
			var username = document.getElementById("username").value;
			var password = document.getElementById("password").value;
			//判断账号是否为空
			if(username == ""){
				alert("账号不能为空");
				return;
			}
			//判断密码是否为空
			if(password == ""){
				alert("请输入密码");
				return;
			}
			//提交表单
			document.getElementsByTagName("form")[0].submit();
		}
	</script>
</body>
</html>

上面的JS中的判断可以直接简化:

			//判断账号是否为空
			if(!username){
				alert("账号不能为空");
				return;
			}
			//判断密码是否为空
			if(!password){
				alert("请输入密码");
				return;
			}

这样的效果和上面一样,但看起来要相对简单一些。

原文链接: https://0saber0.github.io/2018/06/29/javascript-JS%E4%B8%AD%E7%9A%84Boolean/