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 复制或插入Html的实现方法小结
May 19 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
Apr 16 Javascript
jQuery学习笔记之jQuery+CSS3的浏览器兼容性
Jan 19 Javascript
跟我学习javascript的作用域与作用域链
Nov 19 Javascript
移动手机APP手指滑动切换图片特效附源码下载
Nov 30 Javascript
理解AngularJs指令
Dec 10 Javascript
Google 地图获取API Key详细教程
Aug 06 Javascript
微信小程序 template模板详解及实例
Feb 21 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
Dec 01 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
Oct 12 Javascript
Vue如何使用混合Mixins和插件开发详解
Feb 05 Javascript
Vue简单实现原理详解
May 07 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
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
THINKPHP内容分页代码分享
2015/01/14 PHP
PHP json_encode() 函数详解及中文乱码问题
2015/11/05 PHP
PHP结合Jquery和ajax实现瀑布流特效
2016/01/07 PHP
深入剖析浏览器退出之后php还会继续执行么
2016/05/17 PHP
php写app用的框架整理
2019/09/29 PHP
用JavaScript调用WebService的示例
2008/04/07 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
2012/10/11 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
2013/10/16 Javascript
浅析JavaScript中的隐式类型转换
2013/12/05 Javascript
封装好的一个万能检测表单的方法
2015/01/21 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
JavaScript中this的四个绑定规则总结
2016/09/26 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
2017/06/04 Javascript
详解vue-cli 脚手架项目-package.json
2017/07/04 Javascript
vue slot 在子组件中显示父组件传递的模板
2018/03/02 Javascript
angular6.x中ngTemplateOutlet指令的使用示例
2018/08/09 Javascript
JS+canvas画布实现炫酷的旋转星空效果示例
2019/02/13 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
Python删除windows垃圾文件的方法
2015/07/14 Python
Python爬虫代理IP池实现方法
2017/01/05 Python
python爬虫入门教程--利用requests构建知乎API(三)
2017/05/25 Python
python构建深度神经网络(DNN)
2018/03/10 Python
Python numpy 点数组去重的实例
2018/04/18 Python
Python多线程模块Threading用法示例小结
2019/11/09 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
2020/07/07 Python
西班牙英格列斯百货法国官网:El Corte Inglés法国
2017/07/09 全球购物
车库门开启器、遥控器和零件:Chamberlain
2019/04/09 全球购物
学校献爱心活动总结
2014/07/08 职场文书
党支部对照检查材料
2014/08/25 职场文书
派出所班子党的群众路线对照检查材料思想汇报
2014/10/01 职场文书
红高粱观后感
2015/06/10 职场文书
python爬取豆瓣电影TOP250数据
2021/05/23 Python
浅谈TypeScript 索引签名的理解
2021/10/16 Javascript