首先是要理解运算符 ||是这样运算的:从第一个开始,遇到有意义的返回,否则返回最后一个表达式(注意不一定是Boolean值); &&是这样运算的:从第一个开始,遇到无意义的返回,否则返回最后一个表达式(注意同上); !是这样运算的:对表达式的值取非(注意不是对表达式)。 然后再试着 看看下面的代码: var ob1 = new Boolean(false); var ob2 = (ob1&&true); var ob3 = (true&&ob1); var ob4 = Boolean(ob1&&true); var ob5 = Boolean(true&&ob1); alert("ob2 = " + ob2 + " ob3 = " + ob3 + " ob4 = " + ob4 + " ob5 = " + ob5); 最后测试出来的结果是 ob2 = true ob3 = false ob4 = true ob5 = true
new Boolean(),new Boolean(false)是同一个东西,由于它是一个对象,故是有意义的,但其值为false,所以,可以看为“有意义的false”,所以结果为最后一个表达式的值。
原始的Boolean值和Boolean对象区别如此之大,所以切记二者区别,不要混淆使用。
一个Boolean对象,Boolean对象是对Boolean值的一个封装。
Boolean对象:一个值为true或false的Boolean对象。
这个问题是最近在体验一个牛客APP 做JavaScript 题目时候 遇到的 ,然后查询了一下资料,再一般编码的过程中我们还是不会这样去写的,这样写没有多大的意义,直接使用Boolean的原始值就可以了,这样写再理解上也困难一些,意义也不大。不过偶尔装X 还是可以的!
时间: 2024-10-24 23:49:24