《JavaScript逻辑OR运算符详解》由会员分享,可在线阅读,更多相关《JavaScript逻辑OR运算符详解(5页珍藏版)》请在金锄头文库上搜索。
1、 1 / 5 JavaScript 逻辑 OR 运算符详解 在 JavaScript 中,逻辑 OR 运算符用 |表示 1 var bTrue = true; 2 var bFalse = false; 3 var bResult = bTrue | bFalse; 下面的真值表描述了逻辑 AND 运算符的行为 : 在 JavaScript 中, 0, ,false,null,undefined,NaN 均表示 false, 可以用如下的代码证明: 1 2 var bFalse = false;/bool 类型 3 var strEmpty = ;/空字符串 4 var iZero = 0;/
2、数是 0 5 var oNull=null;/null 6 var oUndefined;/undifined 7 var oNaN=NaN;/NaN 8 /* 9 判断 JavaScript 变量的 Boolean 值时,也可以使用逻辑 NOT 运算符。这样做需要在一行代码中使用两个 NOT 运算符。 10 无论运算数是什么类型, 第一个 NOT 运算符返回 Boolean 值。第二个 NOT 将对该 Boolean 值求负,从而给出变量真正的 Boolean 值。 11 */ 12 document.write(); 13 document.writeln(布尔数 false 的逻辑值是
3、+ (!bFalse); 14 document.writeln(空字符串 ()的逻辑值是 + (!strEmpty); 15 document.writeln(数字 0 的 逻辑值是 + (!iZero); 16 document.writeln(NaN 的逻辑值是 : + (!oNaN); 17 document.writeln(null 的逻辑值是 + (!oNull); 运算数 1 运算数 2 结果 true true true true false true false true true false false false 2 / 5 18 document.writeln(und
4、efined 的逻辑值是 + (!oUndefined); 19 document.write(); 20 运行结果: JavaScript 的 逻辑 OR 运算也是简便运算,对于逻辑 OR 运算符来说,如果第一个运算数值为 true,就不再计算第二个运算数 , 如果某个运算数不是 Boolean 值,逻辑 OR 运算并不一定返回 Boolean 值 ,逻辑 |的运算规则如下: 1. 如果一个运算数是对 象,另一个是 Boolean 值,返回该对象。 2. 如果两个运算数都是对象,返回第一个对象。 3. 如果某个运算数是 null,返回 null。 4. 如果某个运算数是 NaN,返回 NaN
5、。 5. 如果某个运算数是 undefined,发生错误。 对于这些运算规则,没有必要死记硬背,因为在 JavaScript 中,可以使用逻辑 Not 运算符来判断 JavaScript 变量的Boolean 值,判断的方式就是 !变量名 ,例如: 使用逻辑 Not 运算符来判断 JavaScript 变量的 Boolean 值 1 2 var bFalse = false;/运算数是 bool 类型的数 3 var sRed = red;/运算数是字符串 4 var iZero = 0;/运 算数是 0 5 var iThreeFourFive = 345;/运算数是 0 以外的任何数字 6
6、 var oObject = new Object();/对象 7 var oNull=null;/运算数是 null 8 var oUndefined;/运算数是 undifined 9 var oNaN=parseInt(abc);/使用 parseInt 方法把尝试字符串 abc 转换成整数,因为 abc 不是数字,因此是转不了的,所以返回的结果就 是 NaN 10 /* 11 判断 JavaScript 变量的 Boolean 值时,也可以使用逻辑 NOT 运算符。这样做需要在一行代码中使用两个 NOT 运算符。 12 无论运算数是什么类型,第一个 NOT 运算符返回 Boolean
7、值。第二个 NOT 将对该 Boolean 值取反,从而给出变量真正的 Boolean 值。 13 */ 3 / 5 14 document.write(); 15 document.writeln(布尔数 false 的逻 辑值是 + (!bFalse); 16 document.writeln(字符串 sRed 的逻辑值是 + (!sRed); 17 document.writeln(数字 0 的逻辑值是 + (!iZero); 18 document.writeln(数字 345 的逻辑值是 + (!iThreeFourFive); 19 document.writeln(对象 Obje
8、ct 的逻辑值是 + (!oObject); 20 document.writeln(NaN 的逻辑值是 : + (!oNaN); 21 document.writeln(null 的逻辑值是 + (!oNull); 22 document.writeln(undefined 的逻辑值是 + (!oUndefined); 23 document.write(); 24 判断结果: 逻辑 |运算符测试脚本: 1 2 document.write(); 3 /*JavaScript 中的 |将返回第一个不为 false 的那个值 (对象亦可 )或者最后一个值 (如果全部都为 false 的话 )*
9、/ 4 var a=2; 5 var b=90; 6 var c=a|b;/在 JavaScript 中,非 0 的数字就代表 true,0 就代表 false 7 document.writeln(a=2,b=90,c=a|b 的结果是: +c);/结果为 2,返回第一个不为 false 的那个值,所以值是 2 8 9 var bFalse1=false; 10 var bFalse2=false; 11 var num=0;/0 代表 false 12 var result=bFalse1|bFalse2|num; 13 document.writeln(bFalse1=false,bFa
10、lse2=false,num=0,result=bFalse1|bFalse2|num 的结果是: +num);/如果全部都为 false 的话,返回最后一个值,因此结果是 0 14 15 /*如果一个运算数是对象,另一个是 Boolean 值,返回该对象。 */ 16 var obj = new Object(); 17 var bTrue=true; 4 / 5 18 var bFalse=false; 19 document.writeln(obj|bTrue 的结果是: +(obj|bTrue);/返回 object 20 document.writeln(bTrue|obj 的结果是
11、: +(bTrue|obj);/返回 true,逻辑 OR 运算也是简便运算。对于逻辑 OR 运算符来说,如果第一个运算数值为 true,就不再计算第二个运算数。 21 document.writeln(obj|bFalse 的结果是: +(obj|bFalse);/返回 object 22 document.writeln(bFalse|obj 的结果是: +(bFalse|obj);/返回 object 23 24 /*如果两个运算数都是对象,返回第一个对象 */ 25 var obj1 = new Object(); 26 var obj2 = new Object(); 27 docu
12、ment.writeln(obj1=(obj1|obj2)的结果是: +(obj1=(obj1|obj2);/结果为 true 28 document.writeln(obj2=(obj1|obj2)的结果是: +(obj2=(obj1|obj2);/结果为 false 29 30 /*如果某个运算数是 null,返回 null。 */ 31 var c=1; 32 var d=null; 33 document.writeln(d=null,null 的布尔值是; +(!d); 34 document.writeln(c=1, d=null,c|d 的结果是: +(c|d); 35 docu
13、ment.writeln(c=1, d=null,d|c 的结果是: +(d|c); 36 37 var o=new Object(); 38 document.writeln(o 是一个对象, d=null,o|d 的结果是: +(o|d);/返回 object 39 document.writeln(o 是一个对象, d=null,d|o 的结果是: +(d|o);/返回 object 40 41 var zero=0; 42 document.writeln(zero=0, d=null,zero|d 的结果是: +(zero|d);/返回 null 43 document.writel
14、n(zero=0, d=null,d|zero 的结果是: +(d|zero);/返回 0 44 45 var bTrue = true; 46 var bResult = (bTrue | bUnknown); 47 /*变量 bUnknown 是未定义的。不过,由于变量 bTrue 的值为 true, bUnknown 不会被计算,因此输出的是 true。 */ 48 document.writeln(bUnknown 是未定义的一个变量, bResult = (bTrue | bUnknown)的结果是: +bResult);/输出 true 49 50 bFalse = false; 51 bResult = (bFalse | bUnknown); /发生错误 52 document.writeln(bResult); /不会执行这一行 53 docum