Boolean 运算符
来源:互联网 发布:淘宝网店套现怎么弄 编辑:程序博客网 时间:2024/05/17 07:03
ToBoolean 操作
在学习各种逻辑运算符之前,让我们先了解一下 ECMAScript-262 v5 规范中描述的 ToBoolean 操作。
抽象操作 ToBoolean 将其参数按照下表中的规则转换为逻辑值:
逻辑 NOT 运算符
在 ECMAScript 中,逻辑 NOT 运算符与 C 和 Java 中的逻辑 NOT 运算符相同,都由感叹号(!)表示。
与逻辑 OR 和逻辑 AND 运算符不同的是,逻辑 NOT 运算符返回的一定是 Boolean 值。
逻辑 NOT 运算符的行为如下:
- 如果运算数是对象,返回 false
- 如果运算数是数字 0,返回 true
- 如果运算数是 0 以外的任何数字,返回 false
- 如果运算数是 null,返回 true
- 如果运算数是 NaN,返回 true
- 如果运算数是 undefined,发生错误
通常,该运算符用于控制循环:
var bFound = false;var i = 0;while (!bFound)
{ if (aValue[i] == vSearchValues) { bFound = true; } else { i++; }}
在这个例子中,Boolean 变量(bFound)用于记录检索是否成功。找到问题中的数据项时,bFound 将被设置为 true,!bFound 将等于 false,意味着运行将跳出 while 循环。
判断 ECMAScript 变量的 Boolean 值时,也可以使用逻辑 NOT 运算符。这样做需要在一行代码中使用两个 NOT 运算符。无论运算数是什么类型,第一个 NOT 运算符返回 Boolean 值。第二个 NOT 将对该 Boolean 值求负,从而给出变量真正的 Boolean 值。
var bFalse = false;var sRed = "red";var iZero = 0;var iThreeFourFive = 345;var oObject = new Object;document.write("bFalse 的逻辑值是 " + (!!bFalse));document.write("sRed 的逻辑值是 " + (!!sRed));document.write("iZero 的逻辑值是 " + (!!iZero));document.write("iThreeFourFive 的逻辑值是 " + (!!iThreeFourFive));document.write("oObject 的逻辑值是 " + (!!oObject));
结果:
bFalse 的逻辑值是 falsesRed 的逻辑值是 trueiZero 的逻辑值是 falseiThreeFourFive 的逻辑值是 trueoObject 的逻辑值是 true
逻辑 AND 运算符
在 ECMAScript 中,逻辑 AND 运算符用双和号(&&)表示:
例如:
var bTrue = true;var bFalse = false;var bResult = bTrue && bFalse;
下面的真值表描述了逻辑 AND 运算符的行为:
逻辑 AND 运算的运算数可以是任何类型的,不止是 Boolean 值。
如果某个运算数不是原始的 Boolean 型值,逻辑 AND 运算并不一定返回 Boolean 值:
- 如果一个运算数是对象,另一个是 Boolean 值,返回该对象。
- 如果两个运算数都是对象,返回第二个对象。
- 如果某个运算数是 null,返回 null。
- 如果某个运算数是 NaN,返回 NaN。
- 如果某个运算数是 undefined,发生错误。
与 Java 中的逻辑 AND 运算相似,ECMAScript 中的逻辑 AND 运算也是简便运算,即如果第一个运算数决定了结果,就不再计算第二个运算数。对于逻辑 AND 运算来说,如果第一个运算数是 false,那么无论第二个运算数的值是什么,结果都不可能等于 true。
考虑下面的例子:
var bTrue = true;var bResult = (bTrue && bUnknown);//发生错误alert(bResult);//这一行不会执行
这段代码在进行逻辑 AND 运算时将引发错误,因为变量 bUnknown 是未定义的。变量 bTrue 的值为 true,因为逻辑 AND 运算将继续计算变量 bUnknown。这样做就会引发错误,因为 bUnknown 的值是 undefined,不能用于逻辑 AND 运算。
如果修改这个例子,把第一个数设为 false,那么就不会发生错误:
var bFalse = false;var bResult = (bFalse && bUnknown);alert(bResult);//输出 "false"
在这段代码中,脚本将输出逻辑 AND 运算返回的值,即字符串 "false"。即使变量 bUnknown 的值为 undefined,它也不会被计算,因为第一个运算数的值是 false。
提示:在使用逻辑 AND 运算符时,必须记住它的这种简便计算特性。
逻辑 OR 运算符
ECMAScript 中的逻辑 OR 运算符与 Java 中的相同,都由双竖线(||)表示:
var bTrue = true;var bFalse = false;var bResult = bTrue || bFalse;
下面的真值表描述了逻辑 OR 运算符的行为:
与逻辑 AND 运算符相似,如果某个运算数不是 Boolean 值,逻辑 OR 运算并不一定返回 Boolean 值:
- 如果一个运算数是对象,并且该对象左边的运算数值均为 false,则返回该对象。
- 如果两个运算数都是对象,返回第一个对象。
- 如果最后一个运算数是 null,并且其他运算数值均为 false,则返回 null。
- 如果最后一个运算数是 NaN,并且其他运算数值均为 false,则返回 NaN。
- 如果某个运算数是 undefined,发生错误。
与逻辑 AND 运算符一样,逻辑 OR 运算也是简便运算。对于逻辑 OR 运算符来说,如果第一个运算数值为 true,就不再计算第二个运算数。
例如:
var bTrue = true;var bResult = (bTrue || bUnknown);alert(bResult);//输出 "true"
与前面的例子相同,变量 bUnknown 是未定义的。不过,由于变量 bTrue 的值为 true,bUnknown 不会被计算,因此输出的是 "true"。
如果把 bTrue 改为 false,将发生错误:
var bFalse = false;var bResult = (bFalse || bUnknown);//发生错误alert(bResult);//不会执行这一行
- ECMAScript Boolean 运算符
- Boolean 运算符
- Java三目运算符(boolean?x:y)
- 比较运算符的结果一定是boolean类型
- 运算符"^"在boolean值上的意思
- 布尔运算(Boolean Operations)
- 第二章Python的Boolean,Number,运算符,Fraction分数,TRIGONOMETRY三角函数
- java三目运算符boolean?x:y中的类型转换
- java三目运算符boolean?x:y中的类型转换
- javascript中boolean的类型转换,运算符&&和|| 的返回值
- Java三目运算符boolean?condition1:condition2的使用及类型转换
- js基础之关于Boolean及相等运算符的隐式类型转换
- 第二章 布尔运算(Boolean Arithmetic)
- Java中boolean类型的位运算
- [总结] Javascript Boolean运算值测试
- JavaScript中的 逻辑运算 又称boolean运算
- python中的Boolean运算和真假值
- js 不同类型var的boolean运算验证
- Halcon函数总结(三)
- rdlc 报表展开与收缩
- 图文讲解OpenShift PaaS
- jquery个人简历网页版换图片改字体
- Android防火墙+流量统计代码
- Boolean 运算符
- 驱动编程学习笔记之IO处理
- qtopia-2.2.0 设计界面无法键入文字 --- 解决办法
- opencv 笔记16 Imgproc_Sobel
- HighCharts中文帮助文档
- ADLS
- Java----JDBC数据库开发
- jquery中的导航栏
- Windows桌面应用开发-字符串的使用