JavaScript中的Boolean类型

Posted on 2006-11-24 19:11 Jaunt 阅读(1018) 评论(0)  编辑  收藏 所属分类: JavaScript
今天看到 Oo缘来是你oO 的博客,关于Boolean 类型一些问题如下:

正文:
JavaScript中的Boolean类型

1.   我们所熟悉的

var x = false;
var y = true;

这是我们大家都熟悉的,此时我们使用的是原始的Boolean值(the primitive Boolean values )true和false

2.   我们很少用到的

var xObject = new Boolean(false);
var yObject = new Boolean(true);

此时我们声明了一个Boolean对象,Boolean对象是对Boolean值的一个封装。
Boolean对象:一个值为true或false的Boolean对象。

原始的Boolean值和Boolean对象是有区别的,不要相互混淆,引用Core JavaScript 1.5 Reference中的一句话:
Do not confuse the primitive Boolean values true and false with the true and false values of the Boolean object.


3.   区别

区别(1):   声明形式

区别(2):   在条件语句(condition statement)中

var  x  =   false ;
var  xObject  =   new  Boolean( false
);

if
(x)
    alert(
" x = true "
);
else

    alert(
" x = false " );

if
(xObject)
    alert(
" xObject =  "   +  xObject  +   " , but in the condition statement, the xObject value is evaluated to true "
);
else

    alert(
" xObject = false " );

输出结果:

=   false
xObject 
=   false,  but in the condition statement, the xObject value is evaluated to true

区别(3):初始化Boolean对象

声明一个Boolean对象,如果我们用一个值为false的Boolean对象对其进行初始化,则新的Boolean对象的值为true

var  xObject  =   new  Boolean( false );
var  resXObject  =   new
 Boolean(xObject);
alert(
" The resXObject value is  "   +  resXObject);

Oo缘来是你oO 的博客中 马嘉楠  遇到这个问题,查了一些资料才知道,学无止境啊。可是我的问题依然没有解决。
我的问题是关于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

问题已经解决:

||是这样运算的:从第一个开始,遇到有意义的返回,否则返回最后一个表达式(注意不一定是Boolean值);

&&是这样运算的:从第一个开始,遇到无意义的返回,否则返回最后一个表达式(注意同上);

!是这样运算的:
对表达式的值取非(注意不是对表达式)。

什么是无意义呢:如下六个 0,null,undefined,"",false,NaN。除此,视为有意义。

new Boolean(),new Boolean(false)是同一个东西,由于它是一个对象,故是有意义的,但其值为false,所以,可以看为“有意义的false”,所以结果为最后一个表达式的值。

只有注册用户登录后才能发表评论。


网站导航: