JavaScript知识点总结(四)之逻辑OR运算符详解


Posted in Javascript onMay 31, 2016

在JavaScript中,逻辑OR运算符用||表示

var bTrue = true;
var bFalse = false;
var bResult = bTrue || bFalse;

下面的真值表描述了逻辑AND运算符的行为:

JavaScript知识点总结(四)之逻辑OR运算符详解

在JavaScript中,0,"",false,null,undefined,NaN均表示false

可以用如下的代码证明:

<script type="text/javascript">
var bFalse = false;//bool类型
var strEmpty = "";//空字符串
var iZero = ;//数是
var oNull=null;//null
var oUndefined;//undifined
var oNaN=NaN;//NaN
/*
判断JavaScript 变量的 Boolean 值时,也可以使用逻辑 NOT 运算符。这样做需要在一行代码中使用两个 NOT 运算符。
无论运算数是什么类型,第一个 NOT 运算符返回 Boolean 值。第二个 NOT 将对该 Boolean 值求负,从而给出变量真正的 Boolean 值。
*/
document.write("<PRE>");
document.writeln("布尔数false的逻辑值是 " + (!!bFalse));
document.writeln("空字符串(\"\")的逻辑值是 " + (!!strEmpty));
document.writeln("数字的逻辑值是 " + (!!iZero));
document.writeln("NaN的逻辑值是 :" + (!!oNaN));
document.writeln("null的逻辑值是 " + (!!oNull));
document.writeln("undefined的逻辑值是 " + (!!oUndefined));
document.write("</PRE>");
</script>

运行结果:

JavaScript知识点总结(四)之逻辑OR运算符详解 

JavaScript的逻辑 OR 运算也是简便运算,对于逻辑 OR 运算符来说,如果第一个运算数值为 true,就不再计算第二个运算数,如果某个运算数不是 Boolean 值,逻辑 OR 运算并不一定返回 Boolean 值,逻辑||的运算规则如下:

1.如果一个运算数是对象,另一个是 Boolean 值,返回该对象。

2.如果两个运算数都是对象,返回第一个对象。

3.如果某个运算数是 null,返回 null。

4.如果某个运算数是 NaN,返回 NaN。

5.如果某个运算数是 undefined,发生错误。

对于这些运算规则,没有必要死记硬背,因为在JavaScript中,可以使用逻辑Not运算符来判断JavaScript变量的Boolean值,判断的方式就是"!!变量名",例如:

使用逻辑Not运算符来判断JavaScript变量的Boolean值

<script type="text/javascript">
var bFalse = false;//运算数是bool类型的数
var sRed = "red";//运算数是字符串
var iZero = ;//运算数是
var iThreeFourFive = ;//运算数是 以外的任何数字
var oObject = new Object();//对象
var oNull=null;//运算数是null
var oUndefined;//运算数是undifined
var oNaN=parseInt("abc");//使用parseInt方法把尝试字符串abc转换成整数,因为abc不是数字,因此是转不了的,所以返回的结果就是NaN
/*
判断JavaScript 变量的 Boolean 值时,也可以使用逻辑 NOT 运算符。这样做需要在一行代码中使用两个 NOT 运算符。
无论运算数是什么类型,第一个 NOT 运算符返回 Boolean 值。第二个 NOT 将对该 Boolean 值取反,从而给出变量真正的 Boolean 值。
*/
document.write("<PRE>");
document.writeln("布尔数false 的逻辑值是 " + (!!bFalse));
document.writeln("字符串sRed 的逻辑值是 " + (!!sRed));
document.writeln("数字 的逻辑值是 " + (!!iZero));
document.writeln("数字 的逻辑值是 " + (!!iThreeFourFive));
document.writeln("对象Object 的逻辑值是 " + (!!oObject));
document.writeln("NaN的逻辑值是 :" + (!!oNaN));
document.writeln("null 的逻辑值是 " + (!!oNull));
document.writeln("undefined 的逻辑值是 " + (!!oUndefined));
document.write("</PRE>");
</script>

判断结果:

JavaScript知识点总结(四)之逻辑OR运算符详解

逻辑||运算符测试脚本:

<script type="text/javascript">
document.write("<PRE>");
/*JavaScript中的||将返回第一个不为false的那个值(对象亦可)或者最后一个值(如果全部都为false的话)*/
var a=;
var b=;
var c=a||b;//在JavaScript中,非的数字就代表true,就代表false
document.writeln("a=,b=,c=a||b的结果是:"+c);//结果为,返回第一个不为false的那个值,所以值是
var bFalse=false;
var bFalse=false;
var num=;//代表false
var result=bFalse||bFalse||num;
document.writeln("bFalse=false,bFalse=false,num=,result=bFalse||bFalse||num的结果是:"+num);//如果全部都为false的话,返回最后一个值,因此结果是
/*如果一个运算数是对象,另一个是 Boolean 值,返回该对象。*/
var obj = new Object();
var bTrue=true;
var bFalse=false;
document.writeln("obj||bTrue的结果是:"+(obj||bTrue));//返回object
document.writeln("bTrue||obj的结果是:"+(bTrue||obj));//返回true,逻辑 OR 运算也是简便运算。对于逻辑 OR 运算符来说,如果第一个运算数值为 true,就不再计算第二个运算数。
document.writeln("obj||bFalse的结果是:"+(obj||bFalse));//返回object
document.writeln("bFalse||obj的结果是:"+(bFalse||obj));//返回object
/*如果两个运算数都是对象,返回第一个对象*/
var obj = new Object();
var obj = new Object();
document.writeln("obj==(obj||obj)的结果是:"+(obj==(obj||obj)));//结果为true
document.writeln("obj==(obj||obj)的结果是:"+(obj==(obj||obj)));//结果为false
/*如果某个运算数是 null,返回 null。*/
var c=;
var d=null;
document.writeln("d=null,null的布尔值是;"+(!!d));
document.writeln("c=,d=null,c||d的结果是:"+(c||d));
document.writeln("c=,d=null,d||c的结果是:"+(d||c));
var o=new Object();
document.writeln("o是一个对象,d=null,o||d的结果是:"+(o||d));//返回object
document.writeln("o是一个对象,d=null,d||o的结果是:"+(d||o));//返回object
var zero=;
document.writeln("zero=,d=null,zero||d的结果是:"+(zero||d));//返回null
document.writeln("zero=,d=null,d||zero的结果是:"+(d||zero));//返回
var bTrue = true;
var bResult = (bTrue || bUnknown);
/*变量 bUnknown 是未定义的。不过,由于变量 bTrue 的值为 true,bUnknown 不会被计算,因此输出的是 "true"。*/
document.writeln("bUnknown是未定义的一个变量,bResult = (bTrue || bUnknown)的结果是:"+bResult);//输出 "true"
bFalse = false;
bResult = (bFalse || bUnknown); //发生错误
document.writeln(bResult); //不会执行这一行
document.write("</PRE>");

运行结果:

JavaScript知识点总结(四)之逻辑OR运算符详解

以上内容是小编给大家介绍的JavaScript知识点总结(四)之逻辑OR运算符详解,希望对大家有所帮助!

Javascript 相关文章推荐
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
Jan 11 Javascript
jquery选择器之基本过滤选择器详解
Jan 27 Javascript
AngularJS教程之简单应用程序示例
Aug 16 Javascript
js时间控件只显示年月
Jan 08 Javascript
深入理解AngularJS中的ng-bind-html指令
Mar 27 Javascript
详解Node使用Puppeteer完成一次复杂的爬虫
Apr 18 Javascript
JS数组去重的6种方法完整实例
Dec 08 Javascript
JavaScript模板引擎实现原理实例详解
Dec 14 Javascript
原生js添加一个或多个类名的方法分析
Jul 30 Javascript
jquery实现烟花效果(面向对象)
Mar 10 jQuery
如何解决vue在ios微信&quot;复制链接&quot;功能问题
Mar 26 Javascript
vue 使用post/get 下载导出文件操作
Aug 07 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
May 31 #Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
May 31 #Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
May 31 #Javascript
TinyMCE汉化及本地上传图片功能实例详解
May 31 #Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
May 31 #Javascript
BootStrap创建响应式导航条实例代码
May 31 #Javascript
浅谈js中的延迟执行和定时执行
May 31 #Javascript
You might like
PHP4和PHP5性能测试和对比 测试代码与环境
2007/08/17 PHP
Prototype使用指南之base.js
2007/01/10 Javascript
{}与function(){}选用空对象{}来存放keyValue
2012/05/23 Javascript
js jquery验证银行卡号信息正则学习
2013/01/21 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
Jquery绑定事件(bind和live的区别介绍)
2013/08/23 Javascript
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
详解AngularJS中自定义指令的使用
2015/06/17 Javascript
在Node.js中使用Javascript Generators详解
2016/05/05 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
详解JavaScript数组过滤相同元素的5种方法
2017/05/23 Javascript
Vue.js中的图片引用路径的方式
2017/07/28 Javascript
vue router 源码概览案例分析
2018/10/09 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
2020/10/27 Javascript
ES6 十大特性简介
2020/12/09 Javascript
python操作MySQL数据库具体方法
2013/10/28 Python
Python实现给文件添加内容及得到文件信息的方法
2015/05/28 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
python基础教程项目四之新闻聚合
2018/04/02 Python
Python生成短uuid的方法实例详解
2018/05/29 Python
Python3 max()函数基础用法
2019/02/19 Python
Django1.11自带分页器paginator的使用方法
2019/10/31 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
Python实现Canny及Hough算法代码实例解析
2020/08/06 Python
使用python爬取抖音app视频的实例代码
2020/12/01 Python
如何在Canvas上的图形/图像绑定事件监听的实现
2020/09/16 HTML / CSS
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
广告业务员岗位职责
2014/02/06 职场文书
中秋节主持词
2014/04/02 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
研究生个人学年总结
2015/02/14 职场文书
地球一小时活动总结
2015/02/27 职场文书
Java数据结构之链表相关知识总结
2021/06/18 Java/Android
常用的Python代码调试工具总结
2021/06/23 Python