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代码
Dec 26 Javascript
json的前台操作和后台操作实现代码
Jan 20 Javascript
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
Jul 03 Javascript
js中的this关键字详解
Sep 25 Javascript
JavaScript中检查对象property的存在性方法介绍
Dec 30 Javascript
JavaScript对象数组的排序处理方法
Oct 21 Javascript
ionic实现带字的toggle滑动组件
Aug 27 Javascript
详解基于angular路由的requireJs按需加载js
Jan 20 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
Apr 10 Javascript
详解vue跨组件通信的几种方法
Jun 15 Javascript
详解Vue组件之作用域插槽
Nov 22 Javascript
Vue.js特性Scoped Slots的浅析
Feb 20 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
?繁体转换的class
2006/10/09 PHP
php中对2个数组相加的函数
2011/06/24 PHP
析构函数与php的垃圾回收机制详解
2013/10/28 PHP
php实现搜索类封装示例
2016/03/31 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
js null,undefined,字符串小结
2010/08/21 Javascript
jQuery Jcrop插件实现图片选取功能
2011/11/23 Javascript
jquery 滚动条事件简单实例
2013/07/12 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
2016/01/08 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
jQuery原理系列-css选择器的简单实现
2016/06/07 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
微信小程序实现图片上传功能实例(前端+PHP后端)
2018/01/10 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
React父子组件间的传值的方法
2018/11/13 Javascript
vue实现将一个数组内的相同数据进行合并
2019/11/07 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
2020/11/17 Vue.js
[49:56]VG vs Optic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
tensorflow 使用flags定义命令行参数的方法
2018/04/23 Python
Python自动抢红包教程详解
2019/06/11 Python
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
世界顶级足球门票网站:Live Football Tickets
2017/10/14 全球购物
Allsole美国/加拿大:英国一家专门出售品牌鞋子的网站
2018/10/21 全球购物
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
应届毕业生应聘自荐信
2013/12/07 职场文书
中学生评语大全
2014/04/18 职场文书
宣传标语大全
2014/07/01 职场文书
班级课外活动总结
2014/07/09 职场文书
大一新生期末自我评价
2014/09/12 职场文书
情感电台广播稿
2015/08/18 职场文书
MySQL悲观锁与乐观锁的实现方案
2021/11/02 MySQL