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 相关文章推荐
javascript 内存回收机制理解
Jan 17 Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
Sep 02 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
Dec 02 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
Mar 27 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
Sep 15 Javascript
dreamweaver 8实现Jquery自动提示
Dec 04 Javascript
js判断浏览器版本以及浏览器内核的方法
Jan 20 Javascript
基于jquery实现最简单的选项卡切换效果
May 08 Javascript
JQuery实现定时刷新功能代码
May 09 jQuery
微信小程序下拉刷新界面的实现
Sep 28 Javascript
微信小程序实现日期格式化和倒计时
Nov 01 Javascript
微信小程序实现侧边分类栏
Oct 21 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 分页类 扩展代码
2009/06/11 PHP
PHP正则表达式之定界符和原子介绍
2012/10/05 PHP
php之static静态属性与静态方法实例分析
2015/07/30 PHP
Javascript 不能释放内存.
2006/09/07 Javascript
for 循环性能比较 提高for循环的效率
2009/03/19 Javascript
jQuery 判断元素上是否绑定了事件
2009/10/28 Javascript
详解JavaScript中getFullYear()方法的使用
2015/06/10 Javascript
js 截取或者替换字符串中的数字实现方法
2016/06/13 Javascript
浅谈在js传递参数中含加号(+)的处理方式
2016/10/11 Javascript
jquery实现点击页面回到顶部
2016/11/23 Javascript
浅析script标签中的defer与async属性
2016/11/30 Javascript
Bootstrap源码学习笔记之bootstrap进度条
2016/12/24 Javascript
jQuery与vue实现拖动验证码功能
2018/01/30 jQuery
layui--js控制switch的切换方法
2019/09/03 Javascript
使用layer弹窗提交表单时判断表单是否输入为空的例子
2019/09/26 Javascript
JS实现点餐自动选择框(案例分析)
2019/12/10 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
2020/07/07 Javascript
[57:59]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第一场 11.05
2020/11/05 DOTA
Python中用Spark模块的使用教程
2015/04/13 Python
Python使用numpy实现BP神经网络
2018/03/10 Python
浅谈python配置与使用OpenCV踩的一些坑
2018/04/02 Python
python3爬虫怎样构建请求header
2018/12/23 Python
Python设计模式之工厂方法模式实例详解
2019/01/18 Python
使用GitHub和Python实现持续部署的方法
2019/05/09 Python
python SVM 线性分类模型的实现
2019/07/19 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
如何撰写一封出色的求职信
2014/04/27 职场文书
捐款倡议书怎么写
2014/05/13 职场文书
渠道运营商合作协议书范本
2014/10/06 职场文书
健康状况证明模板
2014/10/23 职场文书
2014年仓库工作总结
2014/11/20 职场文书
公司行政助理岗位职责
2015/04/11 职场文书
2016年学校十一国庆节活动总结
2016/04/01 职场文书
vue postcss-px2rem 自适应布局
2022/05/15 Vue.js