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


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 源码分析笔记(6) jQuery.data
Jun 08 Javascript
利用javascript的面向对象的特性实现限制试用期
Aug 04 Javascript
jQuery Ajax 仿AjaxPro.Utility.RegisterTypeForAjax辅助方法
Sep 27 Javascript
jquery的$getjson调用并获取远程的JSON字符串问题
Dec 10 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
Feb 18 Javascript
js实时获取并显示当前时间的方法
Jul 31 Javascript
简要了解jQuery移动web开发的响应式布局设计
Dec 04 Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
Feb 14 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
Mar 07 Javascript
jquery表单提交带错误信息提示效果
Mar 09 Javascript
vue一步步实现alert功能
Jul 05 Javascript
Vite和Vue CLI的优劣
Jan 30 Vue.js
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
JAVA/JSP学习系列之二
2006/10/09 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
php获取远程文件内容的函数
2015/11/02 PHP
使用phpstorm和xdebug实现远程调试的方法
2015/12/29 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
2018/05/12 PHP
php获取用户真实IP和防刷机制的实例代码
2018/11/28 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
js精度溢出解决方案
2012/12/02 Javascript
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
javascript中call和apply的用法示例分析
2015/04/02 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式)
2015/08/04 Javascript
有关json_decode乱码及NULL的问题
2015/10/13 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
很实用的js选项卡切换效果
2016/08/12 Javascript
ReactNative中使用Redux架构总结
2017/12/15 Javascript
使用proxy实现一个更优雅的vue【推荐】
2018/06/19 Javascript
node将geojson转shp返回给前端的实现方法
2019/05/29 Javascript
python 布尔操作实现代码
2013/03/23 Python
Python中的异常处理学习笔记
2015/01/28 Python
python如何查看系统网络流量的信息
2016/09/12 Python
python单例模式实例解析
2018/08/28 Python
简单了解Python生成器是什么
2019/07/02 Python
Python 实现输入任意多个数,并计算其平均值的例子
2019/07/16 Python
Python shelve模块实现解析
2019/08/28 Python
TensorFlow实现checkpoint文件转换为pb文件
2020/02/10 Python
Pythonic版二分查找实现过程原理解析
2020/08/11 Python
python操作链表的示例代码
2020/09/27 Python
Html5 FileReader实现即时上传图片功能实例代码
2014/09/01 HTML / CSS
药品质量检测应届生求职信
2013/11/14 职场文书
教师党员一句话承诺
2014/03/28 职场文书
毕业生学校推荐信范文
2014/05/21 职场文书
民族学专业求职信
2014/07/28 职场文书
故意伤害人身损害赔偿协议书
2014/11/19 职场文书
《草船借箭》教学反思
2016/02/23 职场文书
2016年五一国际劳动节活动总结
2016/04/06 职场文书