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字母大小写转换的4个函数详解
May 09 Javascript
jquery果冻抖动效果实现方法
Jan 15 Javascript
javascript中setAttribute()函数使用方法及兼容性
Jul 19 Javascript
JavaScript的jQuery库中ready方法的学习教程
Aug 14 Javascript
Node.js文件操作方法汇总
Mar 22 Javascript
AngularJs Modules详解及示例代码
Sep 01 Javascript
Vue.js中用v-bind绑定class的注意事项
Dec 13 Javascript
JS实现评价的星星功能
Aug 20 Javascript
详解Vue中localstorage和sessionstorage的使用
Dec 22 Javascript
微信小程序中遇到的iOS兼容性问题小结
Nov 14 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
Mar 28 Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
Sep 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
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
2014/01/30 PHP
php实现当前页面点击下载文件的简单方法
2016/09/22 PHP
PHP接口并发测试的方法(推荐)
2016/12/15 PHP
js身份证验证超强脚本
2008/10/26 Javascript
Javascript Jquery 遍历Json的实现代码
2010/03/31 Javascript
function foo的原型与prototype属性解惑
2010/11/19 Javascript
jquery通过a标签删除table中的一行的代码
2013/12/02 Javascript
Js实现无刷新删除内容
2015/04/29 Javascript
Javascript之Date对象详解
2016/06/07 Javascript
归纳下js面向对象的几种常见写法总结
2016/08/24 Javascript
Vue.js快速入门教程
2016/09/07 Javascript
JavaScript数组去重的6个方法
2017/01/21 Javascript
Angular2中select用法之设置默认值与事件详解
2017/05/07 Javascript
微信小程序实现图片上传功能
2018/05/28 Javascript
CentOS7中源码编译安装NodeJS的完整步骤
2018/10/13 NodeJs
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
python将人民币转换大写的脚本代码
2013/02/10 Python
python strip()函数 介绍
2013/05/24 Python
Numpy之文件存取的示例代码
2018/08/03 Python
python读取有密码的zip压缩文件实例
2019/02/08 Python
Python爬虫学习之翻译小程序
2019/07/30 Python
tensorflow实现二维平面模拟三维数据教程
2020/02/11 Python
Python逐行读取文件内容的方法总结
2020/02/14 Python
Keras使用tensorboard显示训练过程的实例
2020/02/15 Python
python ssh 执行shell命令的示例
2020/09/29 Python
美国最古老的精致书写工具制造商:A.T. Cross(高仕)
2018/01/30 全球购物
迪卡侬比利时官网:Decathlon比利时
2019/12/28 全球购物
Miller Harris官网:英国小众香水品牌
2020/09/24 全球购物
简述DNS进行域名解析的过程
2013/12/02 面试题
铭立家具面试题
2012/12/06 面试题
《母亲的恩情》教学反思
2014/02/13 职场文书
四风问题个人对照检查材料
2014/09/26 职场文书
2016入党心得体会范文
2016/01/06 职场文书
利用Pycharm连接服务器的全过程记录
2021/07/01 Python
Docker官方工具docker-registry案例演示
2022/04/13 Servers
Navicat Premium自定义 sql 标签的创建方式
2022/09/23 数据库