您的位置:首页 > Web前端 > JavaScript

Javascript--Boolean运算符

2009-12-24 13:12 309 查看
Boolean运算符有3种:

1.逻辑NOT

逻辑NOT由!表示.与逻辑OR和逻辑AND运算符不同的是:逻辑NOT运算符返回的一定是Boolean值.

逻辑NOT运算符的行为如下:

如果运算数是对象,返回false 如果运算数是0以外的其他任何数字,返回false 如果运算数是0,返回true 如果运算数是null,返回true 如果运算数是NaN,返回true 如果运算数是undefined,发生错误 对Boolean值求非,从而得到真正的Boolean值
例子:

function display(value){
document.write(value+"<br/>");
}

display(!new Object());
display(!100);
display(!0);
display(!null);
display(!NaN);
display(!true);
display(!false);

//undefined
display(!ss);


结果:





总结:

如果运算数是0,null,NaN以及未定义的值,则求非之后,结果为true
如果运算数是0以外的任何数字或对象,则求非之后,结果为false

2.逻辑AND运算符


逻辑AND运算符由&&表示.逻辑AND是简便运算,即:如果第一个运算数决定了结果,就不再计算第二个运算数,对于逻辑与来说,如果第一个运算数是false,无论第二个运算数的值是什么,都不可能等于true.

下面采用真值的方式来描述:

第一个操作数第二个操作数结果
truetruetrue
truefalsefalse
falsetruefalse
falsefalsefalse
逻辑AND运算符的运算数可以是任何类型的,不止是Boolean值.如果某个运算数不是原始的Boolean值,逻辑AND并不一定返回Boolean值.



如果第一个运算数是对象,那么返回第二个运算数
如果某个运算数是null,则返回null
如果某个运算数是NaN,则返回NaN
如果某个运算数是undefined,则发生错误


例子:

function display(value){
document.write(value+"<br/>");
}

var trueValue = true;
var falseValue = false;

var obj1 = new Object();
obj1.name="obj1";

var obj2 =new Object();
obj2.name="obj2";

var result;
//如果第一个运算数是对象,另一个运算数是Boolean值,则返回Boolean值
result = obj1 && trueValue;
display(result);
result = obj1 && falseValue;
display(result);

//如果第一个运算数是Boolean值,则会按照简便运算方式运行
result = trueValue && obj1;//obj1 && true;
display(result.name);
result = falseValue && obj1;
display(result);
display(trueValue && 'www')

//如果两个运算数都是对象,则返回第二个对象
result = obj1 && obj2;
display(result.name);

//如果某个运算数是null,则返回null
result = obj1 && null;
display(result);

//如果某个运算数是NaN,则返回NaN
result = obj1 && NaN;
display(result);

//如果某个运算数是undefined,则发生错误
result = obj1 && ss;
display(result);


结果:







总结:

当变量为null,NaN以及未定义值的时候和false一样,拥有否决权,分别返回null,NaN,undefined.
当运算数为对象时,都将通过运算.如果第一个运算数通过运算,那么将返回第二个运算数.
当运算数未被声明时,引发错误.

3.逻辑OR运算符


逻辑OR运算符由||表示.逻辑OR运算符也是简便运算,如果第一个运算数为true,则不再计算第二个运算数.

下面采用真值的方式来描述:

第一个操作数第二个操作数结果
truetruetrue
truefalsetrue
falsetruetrue
falsefalsefalse


逻辑OR运算符的运算数可以是任何类型的,不止是Boolean值.如果某个运算数不是原始的Boolean值,逻辑OR并不一定返回Boolean值.



如果第一个运算数是对象,则返回该对象
如果第一个运算数为false,null,NaN,undefined,第二个运算数为null,则返回null
如果第一个运算数为false,null,NaN,undefined,第二个运算数为NaN,则返回NaN
如果第一个运算数为false,null,NaN,undefined,第二个运算数为undefined,则引发错误.


例子:

function display(value){
document.write(value+"<br/>");
}

var trueValue = true;
var falseValue = false;

var obj1 = new Object();
obj1.name="obj1";

var obj2 =new Object();
obj2.name="obj2";

var result;

//如果第一个运算数是对象,则返回该对象
result = obj1 || trueValue;
display(result.name);
result = obj1 || falseValue;
display(result.name);
result = obj1 || obj2;
display(result.name);

//如果第一个运算数为false,null,NaN,undefined,第二个运算数为null,则返回null
display(false || null);

//如果第一个运算数为false,null,NaN,undefined,第二个运算数为NaN,则返回NaN
display(null || NaN);

//如果第一个运算数为false,null,NaN,undefined,第二个运算数为undefined,则引发错误
display(NaN || ss);
display(ss || ss);


结果:





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: