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页面滚动浮动层智能定位实例代码
Aug 23 Javascript
dojo学习第二天 ajax异步请求之绑定列表
Aug 29 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
Apr 16 Javascript
轻松学习jQuery插件EasyUI EasyUI表单验证
Dec 01 Javascript
js初始化验证实例详解
Nov 26 Javascript
bootstrap表格分页实例讲解
Dec 30 Javascript
详解自定义ajax支持跨域组件封装
Feb 08 Javascript
基于JavaScript实现一个简单的Vue
Sep 26 Javascript
使用Node.js实现一个多人游戏服务器引擎
Mar 13 Javascript
JS实现提示效果弹出及延迟隐藏的功能
Aug 26 Javascript
浅谈layui分页控件field参数接收对象的问题
Sep 20 Javascript
深入解析微信小程序开发中遇到的几个小问题
Jul 11 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 cookie 登录验证示例代码
2009/03/16 PHP
php 获取SWF动画截图示例代码
2014/02/10 PHP
php+curl 发送图片处理代码分享
2015/07/09 PHP
php微信公众平台示例代码分析(二)
2016/12/06 PHP
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
JS简单实现文件上传实例代码(无需插件)
2013/11/15 Javascript
JavaScript中常见的字符串操作函数及用法汇总
2015/05/04 Javascript
JS实现来回出现文字的状态栏特效代码
2015/10/31 Javascript
Javascript闭包实例详解
2015/11/29 Javascript
详解JavaScript基于面向对象之继承实例
2015/12/16 Javascript
jQuery插件Validation快速完成表单验证的方式
2016/07/28 Javascript
谈谈JavaScript的New关键字
2016/08/26 Javascript
js禁止Backspace键使浏览器后退的实现方法
2017/09/01 Javascript
图片懒加载imgLazyLoading.js使用详解
2020/09/15 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
2020/03/05 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
详解vue 组件的实现原理
2020/11/12 Javascript
[05:07]DOTA2英雄梦之声_第14期_暗影恶魔
2014/06/20 DOTA
[01:03:27]NAVI vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python中还原JavaScript的escape函数编码后字符串的方法
2014/08/22 Python
Python使用matplotlib填充图形指定区域代码示例
2018/01/16 Python
Python中的取模运算方法
2018/11/10 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
10种CSS3实现的loading动画,挑一个走吧?
2020/11/16 HTML / CSS
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
Oasis服装官网:时尚女装在线
2020/07/09 全球购物
二手书店创业计划书
2014/01/16 职场文书
初三家长会邀请函
2014/01/18 职场文书
职工代表大会主持词
2014/04/01 职场文书
2014收银员工作总结范文
2014/12/16 职场文书
2014个人年度工作总结范文
2014/12/24 职场文书
观看建国大业观后感
2015/06/01 职场文书
2016七夕情人节寄语
2015/12/04 职场文书
使用MybatisPlus打印sql语句
2022/04/22 SQL Server