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以外的任何数字或对象,则求非之后,结果为false2.逻辑AND运算符
逻辑AND运算符由&&表示.逻辑AND是简便运算,即:如果第一个运算数决定了结果,就不再计算第二个运算数,对于逻辑与来说,如果第一个运算数是false,无论第二个运算数的值是什么,都不可能等于true.
下面采用真值的方式来描述:
第一个操作数第二个操作数结果truetruetruetruefalsefalsefalsetruefalsefalsefalsefalse逻辑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,则不再计算第二个运算数.
下面采用真值的方式来描述:
第一个操作数第二个操作数结果truetruetruetruefalsetruefalsetruetruefalsefalsefalse逻辑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);结果:
转载于:https://www.cnblogs.com/oneword/archive/2009/12/24/1631344.html
相关资源:数据结构—成绩单生成器