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 相关文章推荐
XML+XSL 与 HTML 两种方案的结合
Apr 22 Javascript
javascript tips提示框组件实现代码
Nov 19 Javascript
jQuery获取样式中的背景颜色属性值/颜色值
Dec 17 Javascript
JQuery简单实现锚点链接的平滑滚动
May 03 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
Jul 08 Javascript
Javascript中的getter和setter初识
Aug 17 Javascript
微信小程序如何获取用户手机号
Jan 26 Javascript
理顺8个版本vue的区别(小结)
Sep 17 Javascript
性能优化篇之Webpack构建速度优化的建议
Apr 03 Javascript
layui--select使用以及下拉框实现键盘选择的例子
Sep 24 Javascript
JS实现拼图游戏
Jan 29 Javascript
JS如何在不同平台实现多语言方式
Jul 16 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
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
PHP读取目录树的实现方法分析
2019/03/22 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
用javascript实现分割提取页面所需内容
2007/05/09 Javascript
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
artDialog 4.1.5 Dreamweaver代码提示/补全插件 附下载
2012/07/31 Javascript
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
JQuery操作单选按钮以及复选按钮示例
2013/09/23 Javascript
JS文本获得焦点清除文本文字的示例代码
2014/01/13 Javascript
JavaScript基础知识及常用方法总结
2016/01/10 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
学习vue.js表单控件绑定操作
2016/12/05 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
2017/10/25 Javascript
玩转vue的slot内容分发
2018/09/22 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
2018/12/10 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
微信小程序如何连接Java后台
2019/08/08 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
微信小程序反编译的实现
2020/12/10 Javascript
python获取代理IP的实例分享
2018/05/07 Python
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
python简单验证码识别的实现方法
2019/05/10 Python
PyQt QCombobox设置行高的方法
2019/06/20 Python
美国现代家具和家居商店:Apt2B
2016/08/29 全球购物
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
欢送退休感言
2014/02/08 职场文书
教师个人鉴定材料
2014/02/08 职场文书
学术诚信承诺书
2014/05/26 职场文书
国庆节演讲稿范文2014
2014/09/19 职场文书
医院领导班子整改方案
2014/10/01 职场文书
1000字打架检讨书
2014/11/03 职场文书
百日宴上的祝酒词
2015/08/10 职场文书
2021年pycharm的最新安装教程及基本使用图文详解
2021/04/03 Python
Springboot/Springcloud项目集成redis进行存取的过程解析
2021/12/04 Redis