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 相关文章推荐
myEvent.js javascript跨浏览器事件框架
Oct 24 Javascript
jqgrid 编辑添加功能详细解析
Nov 08 Javascript
基于Jquery+Ajax+Json实现分页显示附效果图
Jul 30 Javascript
javascript实现获取cookie过期时间的变通方法
Aug 14 Javascript
jQuery获取标签文本内容和html内容的方法
Mar 27 Javascript
javascript为按钮注册回车事件(设置默认按钮)的方法
May 09 Javascript
黑帽seo劫持程序,js劫持搜索引擎代码
Sep 15 Javascript
javascript实现一个简单的弹出窗
Feb 22 Javascript
12个非常实用的JavaScript小技巧【推荐】
May 18 Javascript
详解让sublime text3支持Vue语法高亮显示的示例
Sep 29 Javascript
javascript实现日历效果
Jun 17 Javascript
ES6基础之字符串和函数的拓展详解
Aug 22 Javascript
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实现WEB动态网页静态
2006/10/09 PHP
PHP 数据库树的遍历方法
2009/02/06 PHP
如何判断php数组的维度
2013/06/10 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
PHP计算近1年的所有月份
2017/03/13 PHP
BOOM vs RR BO5 第四场 2.14
2021/03/10 DOTA
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
javascript改变position值实现菜单滚动至顶部后固定
2013/01/18 Javascript
jquery ui dialog实现弹窗特效的思路及代码
2013/08/03 Javascript
jquery操作checkbox示例分享
2014/07/21 Javascript
使用cluster 将自己的Node服务器扩展为多线程服务器
2014/11/10 Javascript
jQuery实现边框动态效果的实例代码
2016/09/23 Javascript
浅谈jquery高级方法描述与应用
2016/10/04 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
2018/01/16 Javascript
详解ES7 Decorator 入门解析
2019/02/18 Javascript
解决vue+router路由跳转不起作用的一项原因
2020/07/19 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
[01:20:38]完美世界DOTA2联赛 GXR vs IO 第一场 11.07
2020/11/09 DOTA
Python实现windows下模拟按键和鼠标点击的方法
2015/03/13 Python
python实现定时同步本机与北京时间的方法
2015/03/24 Python
python开发之字符串string操作方法实例详解
2015/11/12 Python
Python中的defaultdict与__missing__()使用介绍
2018/02/03 Python
python实现邮件发送功能
2019/08/10 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
发现两个有趣的CSS3动画效果
2013/08/14 HTML / CSS
使用HTML5 Canvas绘制圆角矩形及相关的一些应用举例
2016/03/22 HTML / CSS
丝芙兰波兰:Sephora.pl
2018/03/25 全球购物
4s客服专员岗位职责
2013/12/01 职场文书
十佳教师事迹材料
2014/01/11 职场文书
巡警年度自我鉴定
2014/02/21 职场文书
李开复演讲稿
2014/05/24 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
社区党建工作汇报材料
2014/08/14 职场文书
十八大宣传标语
2014/10/09 职场文书
2016企业先进集体事迹材料
2016/02/25 职场文书
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫