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操作cookie的函数代码
Oct 03 Javascript
一个简单的瀑布流效果(主体形式自写)
May 27 Javascript
jQuery插件pagination实现分页特效
Apr 12 Javascript
javascript实现英文首字母大写
Apr 23 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
Apr 26 Javascript
AngularJs解决跨域问题案例详解(简单方法)
May 19 Javascript
node.js cookie-parser 中间件介绍
Jun 06 Javascript
Vue如何实现组件的源码解析
Jun 08 Javascript
详解使用angular的HttpClient搭配rxjs
Sep 01 Javascript
微信小程序实现添加手机联系人功能示例
Nov 30 Javascript
jquery使用FormData实现异步上传文件
Oct 25 jQuery
vue总线机制(bus)知识点详解
May 10 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 mssql扩展SQL查询中文字段名解决方法
2012/10/15 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
2014/10/22 PHP
php数组使用规则分析
2015/02/27 PHP
使用php+swoole对client数据实时更新(一)
2016/01/07 PHP
CodeIgniter集成smarty的方法详解
2016/05/26 PHP
PHP 微信扫码支付源代码(推荐)
2016/11/03 PHP
javascript错误的认识不用关心内存管理
2012/12/15 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
HTML5 js实现拖拉上传文件功能
2020/11/20 Javascript
jQuery插件zTree实现的多选树效果示例
2017/03/08 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
JS实现点击按钮可实现编辑功能
2018/07/03 Javascript
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
vue 组件基础知识总结
2021/01/26 Vue.js
Python用户推荐系统曼哈顿算法实现完整代码
2017/12/01 Python
python中将一个全部为int的list 转化为str的list方法
2018/04/09 Python
python排序函数sort()与sorted()的区别
2018/09/18 Python
python绘制漏斗图步骤详解
2019/03/04 Python
django认证系统实现自定义权限管理的方法
2019/08/28 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
python实现银行实战系统
2020/02/26 Python
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
大学生咖啡店创业计划书
2014/01/21 职场文书
擅自离岗检讨书
2014/02/11 职场文书
企业家王石演讲稿:坚持与放下
2014/04/27 职场文书
学习张林森心得体会
2014/09/10 职场文书
银行员工犯错检讨书
2014/09/16 职场文书
党员民主生活会整改措施
2014/09/26 职场文书
银行竞聘报告范文
2014/11/06 职场文书
Python答题卡识别并给出分数的实现代码
2021/06/22 Python
redis cluster支持pipeline的实现思路
2021/06/23 Redis
Python进行区间取值案例讲解
2021/08/02 Python
Go 语言中 20 个占位符的整理
2021/10/16 Golang