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 相关文章推荐
asp javascript 实现关闭窗口时保存数据的办法
Nov 24 Javascript
js获取及修改网页背景色和字体色的方法
Dec 29 Javascript
深入浅析JavaScript中的作用域和上下文
Mar 26 Javascript
原生js实现轮播图的示例代码
Feb 20 Javascript
JS简单获取日期相差天数的方法
Apr 24 Javascript
设置cookie指定时间失效(实例代码)
May 28 Javascript
JavaScript基础之流程控制语句的用法
Aug 31 Javascript
红黑树的插入详解及Javascript实现方法示例
Mar 26 Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
Sep 04 Javascript
sharp.js安装过程中遇到的问题总结
Apr 02 Javascript
Element Rate 评分的使用方法
Jul 27 Javascript
vue项目多环境配置(.env)的实现
Jul 21 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
MVC模式的PHP实现
2006/10/09 PHP
PHP性能优化 产生高度优化代码
2011/07/22 PHP
解析php获取字符串的编码格式的方法(函数)
2013/06/21 PHP
php查看请求头信息获取远程图片大小的方法分享
2013/12/25 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
2016/01/25 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
Jquery 自定义动画概述及示例
2013/03/29 Javascript
javascript实用方法总结
2015/02/06 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
node网页分段渲染详解
2016/09/05 Javascript
使用DeviceOne实现微信小程序功能
2016/12/29 Javascript
vue实现todolist单页面应用
2017/04/11 Javascript
详解webpack介绍&安装&常用命令
2017/06/29 Javascript
jQuery简介_动力节点Java学院整理
2017/07/04 jQuery
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
vue编译打包本地查看index文件的方法
2018/02/23 Javascript
Threejs实现滴滴官网首页地球动画功能
2020/07/13 Javascript
antd Form组件方法getFieldsValue获取自定义组件的值操作
2020/10/29 Javascript
Vue实现购物小球抛物线的方法实例
2020/11/22 Vue.js
python中bisect模块用法实例
2014/09/25 Python
以911新闻为例演示Python实现数据可视化的教程
2015/04/23 Python
开始着手第一个Django项目
2015/07/15 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
解决Django migrate No changes detected 不能创建表的问题
2018/05/27 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
2020/11/05 Python
html5标记文字_动力节点Java学院整理
2017/07/11 HTML / CSS
俄罗斯的精英皮具:Wittchen
2018/01/29 全球购物
微软中国官方商城:Microsoft Store中国
2018/10/12 全球购物
SQL Server笔试题
2012/01/10 面试题
银行实习生自我鉴定范文
2013/09/19 职场文书
加工操作管理制度
2014/01/19 职场文书
暑期培训随笔感言
2014/03/10 职场文书
企业党员公开承诺书
2014/03/26 职场文书
2015年万圣节活动总结
2015/03/24 职场文书
幼儿园家长心得体会
2016/01/21 职场文书
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL