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 相关文章推荐
JS对img标签进行优化使用onerror显示默认图像
Apr 24 Javascript
JS实现在页面随时自定义背景颜色的方法
Feb 27 Javascript
jQuery实现判断滚动条到底部
Jun 23 Javascript
javascript编写贪吃蛇游戏
Jul 07 Javascript
AngularJS基础 ng-focus 指令简单示例
Aug 01 Javascript
jquery自定义表单验证插件
Oct 12 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
Feb 11 Javascript
详解Vue微信授权登录前后端分离较为优雅的解决方案
Jun 29 Javascript
Vue3.0数据响应式原理详解
Oct 09 Javascript
vue 取出v-for循环中的index值实例
Nov 09 Javascript
微信小程序实现滑动操作代码
Apr 23 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
Nov 05 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
php UBB 解析实现代码
2011/11/27 PHP
PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)
2011/12/28 PHP
PHPMailer邮件发送的实现代码
2013/05/04 PHP
php实现读取手机客户端浏览器的类
2015/01/09 PHP
详解WordPress中分类函数wp_list_categories的使用
2016/01/04 PHP
学习ExtJS Column布局
2009/10/08 Javascript
JavaScript Cookie显示用户上次访问的时间和次数
2009/12/08 Javascript
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
2010/01/22 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
Jquery插件分享之气泡形提示控件grumble.js
2014/05/20 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
Laravel中常见的错误与解决方法小结
2016/08/30 Javascript
微信小程序 wx.request(接口调用方式)详解及实例
2016/11/23 Javascript
react路由配置方式详解
2017/08/07 Javascript
详解Vue的computed(计算属性)使用实例之TodoList
2017/08/07 Javascript
NodeJS父进程与子进程资源共享原理与实现方法
2018/03/16 NodeJs
JS实现的视频弹幕效果示例
2018/08/17 Javascript
利用不到200行代码写一款属于你自己的js类库
2019/07/08 Javascript
js实现录音上传功能
2019/11/22 Javascript
python数组复制拷贝的实现方法
2015/06/09 Python
详解python并发获取snmp信息及性能测试
2017/03/27 Python
python list格式数据excel导出方法
2018/10/31 Python
python 检查文件mime类型的方法
2018/12/08 Python
pandas 对group进行聚合的例子
2019/12/27 Python
Python文字截图识别OCR工具实例解析
2020/03/05 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
2020/06/23 Python
python实现简单的五子棋游戏
2020/09/01 Python
用canvas做一个DVD待机动画的实现代码
2019/04/12 HTML / CSS
Puritan’s Pride(普丽普莱)官方网站:美国最大最全的保健品公司之一
2016/10/23 全球购物
一个精品风格的世界:Atterley
2019/05/01 全球购物
党员公开承诺书
2014/03/25 职场文书
小学生新年寄语
2014/04/03 职场文书
寄语是什么意思
2014/04/10 职场文书
《永远的白衣战士》教学反思
2014/04/25 职场文书
利用JuiceFS使MySQL 备份验证性能提升 10 倍
2022/03/17 MySQL
CSS中calc(100%-100px)不加空格不生效
2023/05/07 HTML / CSS