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 字符串连接的性能问题(多浏览器)
Nov 18 Javascript
js 创建快捷方式的代码(fso)
Nov 19 Javascript
JS对象转换为Jquery对象示例
Jan 26 Javascript
我的Node.js学习之路(四)--单元测试
Jul 06 Javascript
禁用页面部分JavaScript不是全部而是部分
Sep 03 Javascript
javascript继承机制实例详解
Nov 20 Javascript
简介JavaScript中的setTime()方法的使用
Jun 11 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
May 20 Javascript
jQuery选择器及jquery案例详解(必看)
May 20 Javascript
angularJS实现不同视图同步刷新详解
Oct 09 Javascript
vue实现动态给id赋值,点击事件获取当前点击的元素的id操作
Nov 09 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
Dec 07 Vue.js
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 将excel导入mysql
2009/11/09 PHP
php统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
2014/08/19 PHP
PHP常用技巧汇总
2016/03/04 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
2018/05/11 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
jquery 延迟执行实例介绍
2013/08/20 Javascript
jquery如何通过name名称获取当前name的value值
2013/12/20 Javascript
Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析
2016/01/18 Javascript
基于javascript实现checkbox复选框实例代码
2016/01/28 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
2016/08/24 Javascript
JS简单生成随机数(随机密码)的方法
2017/05/11 Javascript
jQuery滑动到底部加载下一页数据的实例代码
2017/05/22 jQuery
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
微信小程序获取当前位置和城市名
2019/11/13 Javascript
[04:50]DOTA2亚洲邀请赛小组赛第四日 TOP10精彩集锦
2015/02/02 DOTA
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
[55:23]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python实现高斯函数的三维显示方法
2018/12/29 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
解决pycharm最左侧Tool Buttons显示不全的问题
2019/12/17 Python
Python利用逻辑回归分类实现模板
2020/02/15 Python
Numpy中np.max的用法及np.maximum区别
2020/11/27 Python
世界上最大的各式箱包网络零售店:eBag
2016/07/21 全球购物
Clos19英国:高档香槟、葡萄酒和烈酒在线购物平台
2020/07/10 全球购物
银行出纳岗位职责
2013/11/25 职场文书
优秀的自荐信要注意哪些
2014/01/03 职场文书
初中毕业生的自我评价
2014/03/03 职场文书
2015届大学生就业推荐表自我评价
2014/09/27 职场文书
质量保证书格式
2015/02/27 职场文书
酒店财务部岗位职责
2015/04/14 职场文书
农村老人去世追悼词
2015/06/23 职场文书