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


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 相关文章推荐
整理的比较全的event对像在ie与firefox浏览器中的区别
Nov 25 Javascript
input标签内容改变的触发事件介绍
Jun 18 Javascript
使用JS画图之点、线、面
Jan 12 Javascript
js使用post 方式打开新窗口
Feb 26 Javascript
jQuery实现首页图片淡入淡出效果的方法
Jun 10 Javascript
jQuery代码实现发展历程时间轴特效
Jul 30 Javascript
JavaScript如何实现跨域请求
Aug 05 Javascript
详解微信小程序——自定义圆形进度条
Dec 29 Javascript
用node-webkit把web应用打包成桌面应用(windows环境)
Feb 01 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
Feb 05 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&amp;平移轮播效果
Aug 16 Javascript
深入浅析vue中cross-env的使用
Sep 12 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
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
PHP4实际应用经验篇(9)
2006/10/09 PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
2014/06/09 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
php中字符集转换iconv函数使用总结
2014/10/11 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
2014/11/19 PHP
jQuery使用fadeout实现元素渐隐效果的方法
2015/03/27 Javascript
jQuery获取上传文件的名称的正则表达式
2015/05/21 Javascript
js+html5实现canvas绘制圆形图案的方法
2015/06/05 Javascript
JS实现的不规则TAB选项卡效果代码
2015/09/18 Javascript
Ajax跨域实现代码(后台jsp)
2017/01/21 Javascript
jQuery DOM节点的遍历方法小结
2017/08/15 jQuery
基于vue的短信验证码倒计时demo
2017/09/13 Javascript
浅谈ElementUI中switch回调函数change的参数问题
2018/08/24 Javascript
详解Vue组件插槽的使用以及调用组件内的方法
2018/11/13 Javascript
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
详解Node.js异步处理的各种写法
2019/06/09 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
在Python中使用pngquant压缩png图片的教程
2015/04/09 Python
简单了解Django模板的使用
2017/12/20 Python
python实现简单flappy bird
2018/12/24 Python
python 多线程对post请求服务器测试并发的方法
2019/06/13 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
用Python从0开始实现一个中文拼音输入法的思路详解
2019/07/20 Python
TensorFlow-gpu和opencv安装详细教程
2020/06/30 Python
北京-环亚运商测试题.net程序员初步测试题
2013/05/28 面试题
党员党性分析材料
2014/02/17 职场文书
幼儿园教师的自我评价范文
2014/09/17 职场文书
简历自我评价优缺点
2015/03/11 职场文书
杨善洲观后感
2015/06/04 职场文书
生日宴会祝酒词
2015/08/10 职场文书
谢师宴学生答谢词
2015/09/30 职场文书
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB
win10系统xps文件怎么打开?win10打开xps文件的两种操作方法
2022/07/23 数码科技