使用new操作符和Boolean(value)构造函数时,得到的并不是原始的true或false,而是一个对象,JS将对象视为真(true)
var oBooleanTrue = new Boolean(true); var oBooleanFalse = new Boolean(false); console.log(oBooleanTrue); console.log(typeof oBooleanTrue); if(oBooleanFalse){ console.log("I an seriously truthy ,don‘t believe me"); } if(oBooleanTrue){ console.log("I am also truthy ,see?") }// 使用valueOf()函数可以在布尔对象中提取到真正的值 if(oBooleanFalse.valueOf()){ console.log("With valueOf , I am false"); }else{ console.log("Without valueof,I am still truthy"); } 聪明的做法是避免使用Boolean构造函数来创建新的Boolean对象。在js中创建Boolean类型的值有两种方法,1. 将字面量true或false赋给变量: var pBooleanTrue = true; var pBooleanFalse = false;2. 使用Boolean()函数。 var fBooleanTrue = Boolean(true); var fBooleanFalse = Boolean(false);
原文地址:https://www.cnblogs.com/xiaohaodeboke/p/12155971.html
时间: 2024-10-24 01:21:43