- var bFound = true;
- var bFlag = false;
使用Boolean(value)方法可以强制转换任意值为boolean类型
js 代码
- alert(Boolean('')); //outpt false
- alert(Boolean('hello')); //output true
- alert(Boolean(100)); //output true
- alert(Boolean(0)); //output false
- alert(Boolean(NaN)); //output false
- alert(Boolean(null)); //output false
- alert(Boolean(undefined)); //output false
- alert(Boolean(new Object())); //output true
“对象探测法”主要写法如下:
js 代码
- var student = new Object();
- if (student.name) {
- alert(student.name);
- } else {
- student.name = 'Tom';
- alert(student.name);
- }
在JavaScript中除了存在boolean类型这样的原始类型之外,还存在一种引用类型 -- Boolean类型。创建Boolean类型的对象的代码如下:
js 代码
- var oBooleanObject = new Boolean(true);
js 代码
- var oBooleanFalse = new Boolean(false);
- alert(oBooleanFalse && true); //output true
虽然我们需要了解Boolean这种类型,但为了避免错误,最好还是使用boolean原始类型。
再看下面一个例子:
js 代码
- 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);
- //output ob2 = true, ob3 = false, ob4 = true, ob5 = true
1. && 的工作方式: 从第一个开始,遇到值为false的表达式(fasle、null、undefined、0、NaN、‘’)则返回此表达式,否则返回最后一个表达式(注意,这边所说的表达式不一定为boolean类型)
2. || 的工作方式: 从第一个开始,遇到值为true的表达式(与上面&&相反的其他情况)的返回此表达式,否则返回最后一个表达式
3. ! 的工作方式: 对表达式的值取非(注意不是对表达式)。
回到上面的例子,我们可以知道,对于var ob2 = ( ob1&&true );,首先看ob1表达式强制转换为boolean类型后的值,这边ob1为Boolean引用类型,从前文可知强制转换后值为true。逻辑运算 (ob1&&true)会继续看下一个值true。这时,逻辑运算&&发现这已经是最后一个值,所以返回了最后的这个表达式true。最终我们的ob2 = true。
对于var ob3 = (true&&ob1);,首先第一个表达式是true,接着看第二个表达式ob1,由于这已经是最后一个表达式了,所以返回ob1。最终ob3 = ob1 = new Boolean(false);即ob3是一个Boolean引用类型。
最后,在alert语句中,使用"ob3 = " + ob3时,默认会调用ob3的toString()方法,而Boolean类型的toString方法即是输出它自己的内部值。这边ob3的内部值为false。了解到这样的特性后,对于ob4和ob5的结果也就不难理解了。
上一篇: Null与Undefined -- Practical JavaScript(一)