JavaScript布尔运算符&&||解析!
更新时间:2012年8月10日17:14:15 作者:
在编程语言中,布尔运算符与相等运算符一样重要。 如果不能测试两个值之间的关系,诸如 if...else 和循环之类的语句将毫无用处。布尔运算符有 3 个:not、and、or
1. 逻辑非
没有逻辑! 表示逻辑 NOT 运算返回一个布尔值 (true/false),该值可应用于 ECMAScript 中的任何类型的值。 该运算符首先将其操作数转换为布尔值,然后对其求反。
下面解释了 Boolean() 转换函数的一组规则。
数据类型
值转换为 true
值转换为 false
布尔值
真的
错误的
细绳
任何非空字符串
“”(空字符串)
数字
任何非零数值(包括无穷大)
0 和 NaN
目的
任何物体
无效的
不明确的
没有任何
不明确的
Boolean() 转换函数的便捷表示。 ------------! !
2. 逻辑与
逻辑 AND 运算符由两个与号 (&&) 表示,并具有两个操作数。
逻辑 AND 运算可以应用于任何类型的操作数,而不仅仅是布尔值。 当其中一个操作数不是布尔值的情况下,逻辑与运算不一定返回布尔值; 在这种情况下,它遵循以下规则:
1、如果第一个操作数是对象,则返回第二个操作数;
2. 如果第二个操作数是一个对象,则只有第一个操作数的求值结果为 true 时才能返回该对象;
3. 如果两个操作符都是对象,则返回第二个操作数; 遵守第一条规则。
4、如果操作为null,则返回null;
5. 如果某个运算符为 NaN,则返回 NaN;
6. 如果运算符未定义,则返回 undefined。
逻辑与运算是一种泄漏运算,即如果第一个操作数可以确定结果javascript 操作符,则不会计算第二个操作数。 (可以理解为两次内部返回操作)。 因此,当规则4、5、6冲突时,遵循泄漏操作原则。
复制代码代码如下:
varnul=空;
瓦尔纳=NaN;
瓦尔测试;
测试=na&n;
document.write(test);//NaN
复制代码代码如下:
varnul=空;
瓦尔纳=NaN;
瓦尔测试;
测试=nul&&na;
document.write(测试);//空
为此,我们来总结一下。 &&操作主要遵循几个原则:
1、漏电动作原理;
2、评估过程中会通过变换生成副本,返回值为原始值;
复制代码代码如下:
//伪代码
函数&&(参数1,参数2){
bparam1=布尔值(param1);
if(!bparam1) returnparam1;
bparam2=布尔值(param2);
返回参数2;
//当参数为对象时,返回引用的指针值,功能相同
3. 逻辑或
逻辑或符号由两个竖线符号 (||) 表示。
逻辑或符号也是一个泄漏运算符。 实现过程可以参考逻辑与伪代码。 我不会在这里列出一些规则。
逻辑or常被用作参数的默认处理javascript 操作符,如evt=evt||window.event;