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


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 相关文章推荐
麦鸡的TAB切换功能结合了javascript和css
Dec 17 Javascript
JavaScript.The.Good.Parts阅读笔记(二)作用域&amp;闭包&amp;减缓全局空间污染
Nov 16 Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
Jun 28 Javascript
如何使用Jquery获取Form表单中被选中的radio值
Aug 09 Javascript
JavaScript 浏览器对象模型BOM使用介绍
Apr 13 Javascript
Bootstrap 响应式实用工具实例详解
Mar 29 Javascript
vue中使用input[type=&quot;file&quot;]实现文件上传功能
Sep 10 Javascript
webpack4.x CommonJS模块化浅析
Nov 09 Javascript
使用react context 实现vue插槽slot功能
Jul 18 Javascript
Element Dialog对话框的使用示例
Jul 26 Javascript
js实现tab栏切换效果
Aug 02 Javascript
vue+vant实现购物车全选和反选功能
Nov 17 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
使用MaxMind 根据IP地址对访问者定位
2006/10/09 PHP
追求程序速度,而不是编程的速度
2008/04/23 PHP
PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部
2009/10/22 PHP
php_screw 1.5:php加密: 安装与使用详解
2013/06/20 PHP
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
laravel5使用freetds连接sql server的方法
2018/12/07 PHP
tp5框架无刷新分页实现方法分析
2019/09/26 PHP
比较搞笑的js陷阱题
2010/02/07 Javascript
javascript textContent与innerText的异同分析
2010/10/22 Javascript
多种方法实现JS动态添加事件
2013/11/01 Javascript
开发中可能会用到的jQuery小技巧
2014/03/07 Javascript
Javascript连接Access数据库完整实例
2015/08/03 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
用js实现简单算法的实例代码
2016/09/24 Javascript
JQuery ZTree使用方法详解
2017/01/07 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
vue中的计算属性的使用和vue实例的方法示例
2017/12/04 Javascript
实用的Vue开发技巧
2019/05/30 Javascript
微信小程序开发技巧汇总
2019/07/15 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
2020/09/04 Javascript
jQuery实现简单评论区功能
2020/10/26 jQuery
python实现网页自动签到功能
2019/01/21 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
澳大利亚制造的羊皮靴:Original UGG Boots
2017/11/13 全球购物
经典的班主任推荐信
2013/10/28 职场文书
大学生毕业的自我评价分享
2014/01/02 职场文书
视光学毕业生自荐书范文
2014/02/13 职场文书
高中生的自我评价
2014/03/04 职场文书
会计的岗位职责
2014/03/15 职场文书
表彰大会主持词
2014/03/26 职场文书
学生社团文化节开幕式主持词
2014/03/28 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
行政经理岗位职责
2015/04/15 职场文书
教师学习中国梦心得体会
2016/01/05 职场文书
二年级数学教学反思
2016/02/16 职场文书