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 相关文章推荐
js 格式化时间日期函数小结
Mar 20 Javascript
jquery DIV撑大让滚动条滚到最底部代码
Jun 06 Javascript
javascript将异步校验表单改写为同步表单
Jan 27 Javascript
js窗口关闭提示信息(兼容IE和firefox)
Oct 23 Javascript
使用node+vue.js实现SPA应用
Jan 28 Javascript
js点击返回跳转到指定页面实现过程
Aug 20 Javascript
AngularJS $injector 依赖注入详解
Sep 14 Javascript
详解webpack编译多页面vue项目的配置问题
Dec 11 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
Jan 17 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
Sep 21 Javascript
es6数组的flat(),flatMap()函数用法实例分析
Apr 18 Javascript
three.js如何实现3D动态文字效果
Mar 03 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
全国FM电台频率大全 - 14 江西省
2020/03/11 无线电
PHP 导出Excel示例分享
2014/08/18 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
用php代码限制国内IP访问我们网站
2015/09/26 PHP
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
PHP开发之用微信远程遥控服务器
2018/01/25 PHP
php如何实现数据库的备份和恢复
2020/11/30 PHP
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
2013/01/23 Javascript
jquery插件之文字间歇自动向上滚动效果代码
2016/02/25 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
2016/07/28 Javascript
浅谈JavaScript中变量和函数声明的提升
2016/08/09 Javascript
Django+Vue.js搭建前后端分离项目的示例
2017/08/07 Javascript
简单谈谈关于Angular Cli打包的事
2017/09/05 Javascript
jQuery实现动态控制页面元素的方法分析
2017/12/20 jQuery
vue选项卡切换登录方式小案例
2019/09/27 Javascript
书单|人生苦短,你还不用python!
2017/12/29 Python
Django 跨域请求处理的示例代码
2018/05/02 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
对python中UDP,socket的使用详解
2019/08/22 Python
python使用 __init__初始化操作简单示例
2019/09/26 Python
django自定义模板标签过程解析
2019/12/14 Python
用python介绍4种常用的单链表翻转的方法小结
2020/02/24 Python
如何用python免费看美剧
2020/08/11 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
2020/09/16 Python
python中str内置函数用法总结
2020/12/27 Python
推荐一些比较有用的css3新属性
2014/11/11 HTML / CSS
HTML5新增属性data-*和js/jquery之间的交互及注意事项
2017/08/08 HTML / CSS
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
软件测试英文面试题
2012/10/14 面试题
最热门的自我评价
2013/12/30 职场文书
专业求职信撰写要诀
2014/02/18 职场文书
婚礼男方父母答谢词
2015/09/29 职场文书
小学班主任心得体会
2016/01/07 职场文书
评估“风险”创业计划的几大要点
2019/08/12 职场文书
浅谈vue2的$refs在vue3组合式API中的替代方法
2021/04/18 Vue.js