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 相关文章推荐
Jquery 插件学习实例1 插件制作说明与tableUI优化
Apr 02 Javascript
深入理解Javascript闭包 新手版
Dec 28 Javascript
js中switch case循环实例代码
Dec 30 Javascript
JavaScript三元运算符的多种使用技巧
Apr 16 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
Mar 30 Javascript
图解prototype、proto和constructor的三角关系
Jul 31 Javascript
vue分类筛选filter方法简单实例
Mar 30 Javascript
vue-router实现webApp切换页面动画效果代码
May 25 Javascript
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
Jan 08 jQuery
JavaScript原型链与继承操作实例总结
Aug 24 Javascript
Vue组件间的通信pubsub-js实现步骤解析
Mar 11 Javascript
微信小程序实现通讯录列表展开收起
Nov 18 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变量修饰符static的使用
2013/06/28 PHP
如何通过Linux命令行使用和运行PHP脚本
2015/07/29 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
2016/06/17 PHP
总结一些js自定义的函数
2006/08/05 Javascript
解析js原生方法创建表格效率测试
2013/07/08 Javascript
js判断选择的时间是否大于今天的代码
2013/08/20 Javascript
Jquery如何实现点击时高亮显示代码
2014/01/22 Javascript
JavaScript不使用prototype和new实现继承机制
2014/12/29 Javascript
AngularJS自定义插件实现网站用户引导功能示例
2016/11/07 Javascript
总结几道关于Node.js的面试问题
2017/01/11 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
2017/10/25 Javascript
vue2导航根据路由传值,而改变导航内容的实例
2017/11/10 Javascript
详解ES6 Fetch API HTTP请求实用指南
2018/11/14 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
JavaScript代码实现简单计算器
2020/12/27 Javascript
[01:00:53]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Secret
2018/03/30 DOTA
python创建只读属性对象的方法(ReadOnlyObject)
2013/02/10 Python
Python实现一个简单的验证码程序
2017/11/03 Python
Python内置函数—vars的具体使用方法
2017/12/04 Python
Python实现一个带权无回置随机抽选函数的方法
2019/07/24 Python
Flask框架单例模式实现方法详解
2019/07/31 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
总经理司机职责
2014/02/02 职场文书
培训主管的职业生涯规划
2014/03/06 职场文书
旅游局领导班子“四风”问题对照检查材料思想汇报
2014/09/29 职场文书
个人股份合作协议书
2014/10/24 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书
2015年十月一日放假通知
2015/08/18 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
MySQL系列之七 MySQL存储引擎
2021/07/02 MySQL
MySQL 原理与优化之Update 优化
2022/08/14 MySQL