逻辑表达式中与或非的用法详解


Posted in Javascript onJune 06, 2016

先说逻辑与(&&),它可以从三个层次进行理解

第一个层次最简单,就是简单的布尔值之间的逻辑与,就是左值和右值都是true时,返回true,两边都是false或者两边的值其中一边是fasle,就返回false;(AND操作);

第二个层次,(false,null,indefined,0,-0,NaN和""这些都是假值,其他所有的值包括对象都是真值),对这些"真值"和"假值"进行AND操作,返回一个"真值"或者"假值";

值得注意的是,(&&)并不返回一直的是布尔值,他会返回第二个层次出现的真值或者假值,,但是这些"真值"和"假值"到底是什么值呢?所以引入第三层的理解

第三个层次的理解,其实也简单,当语句中的左操作数是假值时,就不对语句的右操作数进行运算了,直接返回左操作数作为表达式的运算结果;当左操作数是真值时,将右操作数的值返回,作为表达式的运算结果,

举个例子如下:

var o={s:1}; //创建一个对象
var p=null; //创建了一个null
o&&o.s //返回1,应为o是真值,所以返回o.s的值
p&&p.x //返回null,应为p是假值,所以不去计算p.x,直接返回p的值 <br>o&&o.b; //这样会抛出一个类型错误异常,因为o为真值,需要返回o.b,但是o.b并不存在,

这样就好理解了

虽然&&可以用来返回真值和假值,但是大多数情况下,真值就是true,假值就是false;

再说一下逻辑或(||),举一反三,逻辑与也有与逻辑或类似的三个层次理解,就不详细写了

逻辑与最常用的方法是从一群备选的操作数中选出一个真值的表达式

举个例子

var min =min_value||sum.min_value||100;

先找到min_value,如果它没有定义,那就在sum对象中查找,如果还没有,只能给它赋值一个死值100,

这种方法通常用在函数中给参数设置默认值

举个例子

function add(a,b){
b=b||0;
return a+b; 
}

当不对b设置初始值时,b等于0;add函数返回的就是a+0,也就是a的值;

逻辑非(!)

他的目的是将操作数的布尔值进行求反,例如:如果x是真值,!x返回false,如果x是假值,!x返回true。

返回布尔值时,已经将这些真值啊,假值啊转换成了布尔值,再对其进行求反。

这里介绍一种!的常见用法

有时候我们需要对一个变量查检其是否存在或者检查值是否有一个有效值,就使用!!,

例如,检测一个从一个函数返回的值student是否是个有效值,就使用 !!student,如果他返回是true,那么他就是一个有效值。

以上所述是小编给大家介绍的逻辑表达式中与或非的用法详解的相关知识,希望对大家有所帮助!

Javascript 相关文章推荐
javaScript checkbox 全选/反选及批量删除
Apr 28 Javascript
让你的博客飘雪花超出屏幕依然看得见
Jan 04 Javascript
javascript-简单的日历实现及Date对象语法介绍(附图)
May 30 Javascript
JSON传递bool类型数据的处理方式介绍
Sep 18 Javascript
jquery插件ajaxupload实现文件上传操作
Dec 09 Javascript
学习Node.js模块机制
Oct 17 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
Jan 21 Javascript
React学习笔记之事件处理(二)
Jul 02 Javascript
在Vue项目中引入腾讯验证码服务的教程
Apr 03 Javascript
javascript使用substring实现的展开与收缩文字功能示例
Jun 17 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
Sep 18 Javascript
微信小程序 根据不同用户切换不同TabBar
Apr 21 Javascript
node.js 中国天气预报 简单实现
Jun 06 #Javascript
JS中mouseover和mouseout多次触发问题如何解决
Jun 06 #Javascript
js获取元素的外链样式的简单实现方法
Jun 06 #Javascript
node.js cookie-parser之parser.js
Jun 06 #Javascript
gulp-htmlmin压缩html的gulp插件实例代码
Jun 06 #Javascript
node.js cookie-parser 中间件介绍
Jun 06 #Javascript
JavaScript 对象字面量讲解
Jun 06 #Javascript
You might like
php遍历数组的方法分享
2012/03/22 PHP
php生成验证码函数
2015/10/20 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
php7 list()、session及其他模块的修改实例分析
2020/05/25 PHP
js表格分页实现代码
2009/09/18 Javascript
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
Js中setTimeout()和setInterval() 何时被调用执行的用法
2013/04/12 Javascript
jquery特效 幻灯片效果示例代码
2013/07/16 Javascript
js中style.display=&quot;&quot;无效的解决方法
2014/10/30 Javascript
一道常被人轻视的web前端常见面试题(JS)
2016/02/15 Javascript
js实现获取两个日期之间所有日期的方法
2016/06/17 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
2016/07/21 Javascript
js实现时间轴自动排列效果
2017/03/09 Javascript
jQuery获取随机颜色的实例代码
2018/05/21 jQuery
JQuery特殊效果和链式调用操作示例
2019/05/13 jQuery
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
python多重继承实例
2014/10/11 Python
python中while循环语句用法简单实例
2015/05/07 Python
Python日期的加减等操作的示例
2017/08/15 Python
详解python while 函数及while和for的区别
2018/09/07 Python
Python面向对象程序设计类的多态用法详解
2019/04/12 Python
Python3.5装饰器原理及应用实例详解
2019/04/30 Python
Python3之不使用第三方变量,实现交换两个变量的值
2019/06/26 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
2020/02/28 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
纽约手袋品牌:KARA
2018/03/18 全球购物
质检部岗位职责
2013/11/11 职场文书
厨房工作人员岗位职责
2013/11/15 职场文书
教师自我鉴定
2013/12/13 职场文书
心理咨询专业自荐信
2014/07/07 职场文书
中秋节慰问信
2015/02/15 职场文书
2015年宣传部个人工作总结
2015/05/14 职场文书
廉洁自律证明
2015/06/24 职场文书
pytorch显存一直变大的解决方案
2021/04/08 Python