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


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 相关文章推荐
Asp.net下使用Jquery Ajax传送和接收DataTable的代码
Sep 12 Javascript
一款由jquery实现的整屏切换特效
Sep 15 Javascript
jQuery获得字体颜色16位码的方法
Feb 20 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
Mar 28 Javascript
Atitit.js的键盘按键事件捆绑and事件调度
Apr 01 Javascript
Jquery 自定义事件实现发布/订阅的简单实例
Jun 12 Javascript
深入理解bootstrap框架之第二章整体架构
Oct 09 Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
Nov 21 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
Jul 11 jQuery
如何将你的AngularJS1.x应用迁移至React的方法
Feb 01 Javascript
Vue.js添加组件操作示例
Jun 13 Javascript
layUI的验证码功能及校验实例
Oct 25 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中str_replace函数使用小结
2008/10/11 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
PHP数组操作类实例
2015/07/11 PHP
php生成4位数字验证码的实现代码
2015/11/23 PHP
smarty的section嵌套循环用法示例
2016/05/28 PHP
mac系统下为 php 添加 pcntl 扩展
2016/08/28 PHP
PHP memcache在微信公众平台的应用方法示例
2017/09/13 PHP
Laravel框架中缓存的使用方法分析
2019/09/06 PHP
用JavaScript玩转游戏物理(一)运动学模拟与粒子系统
2010/06/19 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
js window.open弹出新的网页窗口
2014/01/16 Javascript
js 数组操作之pop,push,unshift,splice,shift
2014/01/29 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
2015/10/25 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
2016/07/04 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
vue 本地服务不能被外部IP访问的完美解决方法
2018/10/29 Javascript
微信小程序下拉框组件使用方法详解
2018/12/28 Javascript
基于canvasJS在PHP中制作动态图表
2020/05/30 Javascript
pycharm 使用心得(九)解决No Python interpreter selected的问题
2014/06/06 Python
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
深入理解Python3中的http.client模块
2017/03/29 Python
python使用Tkinter实现在线音乐播放器
2018/01/30 Python
解决python3 json数据包含中文的读写问题
2018/05/10 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
2019/07/25 Python
pytorch之Resize()函数具体使用详解
2020/02/27 Python
德国宠物用品、宠物食品及水族馆网上商店:ZooRoyal
2017/07/09 全球购物
如何查询Oracle数据库中已经创建的索引
2013/10/11 面试题
教师简历自我评价
2014/02/03 职场文书
党校培训自我鉴定范文
2014/04/10 职场文书
《大作家的小老师》教学反思
2014/04/16 职场文书
2015年办公室个人工作总结
2015/04/20 职场文书
Java数据开发辅助工具Docker与普通程序使用方法
2021/09/15 Java/Android
防止web项目中的SQL注入
2021/12/06 MySQL
Win11 Beta 预览版 22621.575 和 22622.575更新补丁KB5016694发布(附更新内容大全)
2022/08/14 数码科技