【JS】布尔逻辑
0 是逻辑的 false
1 是逻辑的 true
空字符串是逻辑的 false
null 是逻辑的 false
NaN 是逻辑的 false
字符串 'false' 是逻辑的 true
Boolean逻辑
如果逻辑对象无初始值或者其值为 0、-0、null、""、false、undefined 或者 NaN,那么对象的值为 false。否则,其值为 true(即使当自变量为字符串 "false" 时)。
下面的所有的代码行均会创建初始值为 false 的 Boolean 对象,输出结果全是false。
<script type="text/javascript"> var myBoolean=new Boolean(); document.write(myBoolean); document.write("<br />"); var myBoolean=new Boolean(0); document.write(myBoolean); document.write("<br />"); var myBoolean=new Boolean(null); document.write(myBoolean); document.write("<br />"); var myBoolean=new Boolean(""); document.write(myBoolean); document.write("<br />"); var myBoolean=new Boolean(false); document.write(myBoolean); document.write("<br />"); var myBoolean=new Boolean(NaN); document.write(myBoolean); document.write("<br />"); </script>
下面的所有的代码行均会创初始值为 true 的 Boolean 对象,输出结果全是true。
<script type="text/javascript"> var myBoolean=new Boolean(1); document.write(myBoolean); document.write("<br />"); var myBoolean=new Boolean(true); document.write(myBoolean); document.write("<br />"); var myBoolean=new Boolean("true"); document.write(myBoolean); document.write("<br />"); var myBoolean=new Boolean("false"); document.write(myBoolean); document.write("<br />"); var myBoolean=new Boolean("Bill Gates"); document.write(myBoolean); document.write("<br />"); </script>
补充:当时对于字符串 'false' 是逻辑的 true,我一直没想明白,后来才知道是因为'false'是字符串,有了长度。脑袋一下就短路了。