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


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 相关文章推荐
jQuery 学习入门篇附实例代码
Mar 16 Javascript
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
Jun 18 Javascript
用jquery实现等比例缩放图片效果插件
Jul 24 Javascript
网站页面自动跳转实现方法PHP、JSP(上)
Aug 01 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
Mar 01 Javascript
js去字符串前后空格5种实现方法及比较
Apr 03 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
Jun 05 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
Nov 10 Javascript
浅谈react+es6+webpack的基础配置
Aug 09 Javascript
详解如何优雅地在React项目中使用Redux
Dec 28 Javascript
JavaScript组合模式---引入案例分析
May 23 Javascript
jQuery实现滑动开关效果
Aug 02 jQuery
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
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
PHP中filter函数校验数据的方法详解
2015/07/31 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
2018/04/20 PHP
PHP中数组转换为SimpleXML教程
2019/01/27 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
2020/11/10 PHP
js 字符串操作函数
2009/07/25 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
尝试动手制作javascript放大镜效果
2015/12/25 Javascript
JavaScript常用正则函数用法示例
2017/01/23 Javascript
微信小程序 引入es6 promise
2017/04/12 Javascript
BootStrap中的Fontawesome 图标
2017/05/25 Javascript
Vue仿今日头条实例详解
2018/02/06 Javascript
vue源码学习之Object.defineProperty对象属性监听
2018/05/30 Javascript
javascript运行机制之执行顺序理解
2020/08/03 Javascript
[01:10]DOTA2亚洲邀请赛 征战号角响彻全场
2015/01/06 DOTA
Python多进程同步简单实现代码
2016/04/27 Python
python下如何查询CS反恐精英的服务器信息
2017/01/17 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
2018/01/05 Python
Python 循环语句之 while,for语句详解
2018/04/23 Python
对Python 内建函数和保留字详解
2018/10/15 Python
对Python中内置异常层次结构详解
2018/10/18 Python
html5/css3响应式页面开发总结
2018/10/16 HTML / CSS
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
AMAVII眼镜官网:时尚和设计师太阳镜
2019/05/05 全球购物
一道写SQL的面试题和答案
2013/11/19 面试题
英语文学专业学生的自我评价
2013/10/31 职场文书
挑战杯创业计划书的写作指南
2014/01/07 职场文书
网管求职信
2014/03/03 职场文书
捐款倡议书格式范文
2014/05/14 职场文书
本科毕业论文致谢词
2015/05/14 职场文书
个人收入证明格式
2015/06/24 职场文书
Python超简单容易上手的画图工具库推荐
2021/05/10 Python