Javascript--Boolean运算符
2009-12-24 13:12
309 查看
Boolean运算符有3种:
1.逻辑NOT
2.逻辑AND运算符
逻辑AND运算符由&&表示.逻辑AND是简便运算,即:如果第一个运算数决定了结果,就不再计算第二个运算数,对于逻辑与来说,如果第一个运算数是false,无论第二个运算数的值是什么,都不可能等于true.
下面采用真值的方式来描述:
逻辑AND运算符的运算数可以是任何类型的,不止是Boolean值.如果某个运算数不是原始的Boolean值,逻辑AND并不一定返回Boolean值.
如果第一个运算数是对象,那么返回第二个运算数
如果某个运算数是null,则返回null
如果某个运算数是NaN,则返回NaN
如果某个运算数是undefined,则发生错误
例子:
总结:
当变量为null,NaN以及未定义值的时候和false一样,拥有否决权,分别返回null,NaN,undefined.
当运算数为对象时,都将通过运算.如果第一个运算数通过运算,那么将返回第二个运算数.
当运算数未被声明时,引发错误.
3.逻辑OR运算符
逻辑OR运算符由||表示.逻辑OR运算符也是简便运算,如果第一个运算数为true,则不再计算第二个运算数.
下面采用真值的方式来描述:
逻辑OR运算符的运算数可以是任何类型的,不止是Boolean值.如果某个运算数不是原始的Boolean值,逻辑OR并不一定返回Boolean值.
如果第一个运算数是对象,则返回该对象
如果第一个运算数为false,null,NaN,undefined,第二个运算数为null,则返回null
如果第一个运算数为false,null,NaN,undefined,第二个运算数为NaN,则返回NaN
如果第一个运算数为false,null,NaN,undefined,第二个运算数为undefined,则引发错误.
例子:
1.逻辑NOT
逻辑NOT由!表示.与逻辑OR和逻辑AND运算符不同的是:逻辑NOT运算符返回的一定是Boolean值.
逻辑NOT运算符的行为如下:
如果运算数是对象,返回false 如果运算数是0以外的其他任何数字,返回false 如果运算数是0,返回true 如果运算数是null,返回true 如果运算数是NaN,返回true 如果运算数是undefined,发生错误 对Boolean值求非,从而得到真正的Boolean值逻辑NOT运算符的行为如下:
例子:
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);
2.逻辑AND运算符
逻辑AND运算符由&&表示.逻辑AND是简便运算,即:如果第一个运算数决定了结果,就不再计算第二个运算数,对于逻辑与来说,如果第一个运算数是false,无论第二个运算数的值是什么,都不可能等于true.
下面采用真值的方式来描述:
第一个操作数 | 第二个操作数 | 结果 |
true | true | true |
true | false | false |
false | true | false |
false | false | false |
如果第一个运算数是对象,那么返回第二个运算数
如果某个运算数是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,则不再计算第二个运算数.
下面采用真值的方式来描述:
第一个操作数 | 第二个操作数 | 结果 |
true | true | true |
true | false | true |
false | true | true |
false | false | false |
逻辑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);
相关文章推荐
- javascript中boolean的类型转换,运算符&&和|| 的返回值
- JavaScript基础(三) 运算符
- [总结] Javascript Boolean运算值测试
- JavaScript Boolean 对象
- Javascript || && 运算符
- javascript介绍、变量、运算符-1
- 【学习笔记】javascript 基础篇 变量 运算符 函数
- javascript运算符语法全面概述
- JavaScript 笔记 - Boolean类型
- javascript中in运算符详解
- javascript之运算符下篇(四)
- javascript中逗号运算符
- JavaScript--变量和运算符
- 你一定不知道的JavaScript等号运算符( `==和===` )
- JavaScript中 typeof运算符 详解
- javaScript运算符和流程控制
- Javascript运算符
- 你根本不懂Javascript(2):表达式和运算符
- (6)JavaScript学习笔记 - 表达式和运算符
- JavaScript网页编程之------基本运用语法(变量、运算符、语句)