JavaScript中的逻辑判断符&&、||与!介绍


Posted in Javascript onDecember 31, 2014

与C、Java等语言一样,JavaScript中可以用&&、||、!三个逻辑判断符来对boolean值进行逻辑判断。与C、Java不同的是,JavaScript中逻辑与(&&)和逻辑或(||)操作符可以应用在任何值上,而操作结束后返回的也不一定是boolean值。

逻辑与&&的处理规则

JavaScript中&&的处理规则是这样的:

1.判断第一个值是否为Falsy。如果为Falsy,则直接返回第一个值(不一定为boolean类型)。
2.如果第一个值为Truthy,则直接返回第二个值(不一定为boolean类型)。

var o = {x:1, y:2};

console.log(o && o.y);//2

console.log(null && x);//null

逻辑或||的处理规则

与&&操作符类似,JavaScript中||的处理规则是这样的:

1.判断第一个值是否为Truthy。如果为Truthy,则直接返回第一个值(不一定为boolean类型)。
2.如果第一个值为Falsy,则直接返回第二个值(不一定为boolean类型)。

||操作符的这种行为使得JavaScript中一些快捷写法成为现实:

1. 从一系列值中获取第一个Truthy值:

var a = null;

var b = 42;

var v = a || b || 100;

console.log(v);//42

2. 对函数中的参数赋以默认值:
function test(p){

  p = p || {};//if p is not passed, make it an empty object.

}

与&&和||不同,!操作符的行为与C、Java等语言是一致的,只返回boolean值(true或false)。
Javascript 相关文章推荐
JavaScript与函数式编程解释
Apr 27 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
Aug 30 Javascript
关于javascript模块加载技术的一些思考
Nov 28 Javascript
浅谈javascript回调函数
Dec 07 Javascript
js实现跨域的多种方法
Dec 25 Javascript
webpack常用配置项配置文件介绍
Nov 07 Javascript
Vue.JS入门教程之处理表单
Dec 01 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
Feb 08 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
Apr 22 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
Jun 12 jQuery
AngularJS中ng-class用法实例分析
Jul 06 Javascript
Vue+penlayers实现多边形绘制及展示
Dec 24 Vue.js
JavaScript中的eval()函数使用介绍
Dec 31 #Javascript
JSONP跨域GET请求解决Ajax跨域访问问题
Dec 31 #Javascript
JavaScript中的异常捕捉介绍
Dec 31 #Javascript
JavaScript中对象介绍
Dec 31 #Javascript
JavaScript中用字面量创建对象介绍
Dec 31 #Javascript
javascript设计模式之中介者模式Mediator
Dec 30 #Javascript
javascript实现window.print()去除页眉页脚
Dec 30 #Javascript
You might like
深入PHP中慎用双等于(==)的详解
2013/06/06 PHP
php使用curl发送json格式数据实例
2013/12/17 PHP
php Imagick获取图片RGB颜色值
2014/07/28 PHP
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
基于jquery的获取mouse坐标插件的实现代码
2010/04/01 Javascript
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
WEB 前端开发中防治重复提交的实现方法
2016/10/26 Javascript
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
2018/02/10 Javascript
关于vue v-for 循环问题(一行显示四个,每一行的最右边那个计算属性)
2018/09/04 Javascript
微信小程序开发之自定义tabBar的实现
2018/09/06 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
详解多页应用 Webpack4 配置优化与踩坑记录
2018/10/16 Javascript
vue 检测用户上传图片宽高的方法
2020/02/06 Javascript
利用Python实现命令行版的火车票查看器
2016/08/05 Python
遍历python字典几种方法总结(推荐)
2016/09/11 Python
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
python基础教程项目二之画幅好画
2018/04/02 Python
django 发送手机验证码的示例代码
2018/04/25 Python
Django框架实现的简单分页功能示例
2018/12/04 Python
快速解决vue.js 模板和jinja 模板冲突的问题
2019/07/26 Python
python实现贪吃蛇双人大战
2020/04/18 Python
PyQt5结合matplotlib绘图的实现示例
2020/09/15 Python
浅析CSS3中鲜为人知的属性:-webkit-tap-highlight-color
2017/01/12 HTML / CSS
Linux的文件类型
2012/03/07 面试题
创业计划书模版
2014/02/05 职场文书
网络编辑岗位职责范本
2014/02/10 职场文书
创业女性典型材料
2014/05/02 职场文书
骨干教师考核方案
2014/05/09 职场文书
民事起诉书范本
2015/05/19 职场文书
《云雀的心愿》教学反思
2016/02/23 职场文书
python某漫画app逆向
2021/03/31 Python
Vue + iView实现Excel上传功能的完整代码
2021/06/22 Vue.js
python基础之函数的定义和调用
2021/10/24 Python