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获取地址栏参数插件(模仿C#)
Oct 26 Javascript
JS localStorage实现本地缓存的方法
Jun 22 Javascript
Javascript call和apply区别及使用方法
Nov 14 Javascript
jquery实现搜索框常见效果的方法
Jan 22 Javascript
jquery实现表格中点击相应行变色功能效果【实例代码】
May 09 Javascript
值得学习的bootstrap fileinput文件上传工具
Nov 08 Javascript
javascript实现复选框全选或反选
Feb 04 Javascript
Angular2自定义分页组件
Apr 19 Javascript
javascript实现循环广告条效果
Dec 12 Javascript
javascript function(函数类型)使用与注意事项小结
Jun 10 Javascript
node中使用log4js4.x版本记录日志的方法
Aug 20 Javascript
Vue使用鼠标在Canvas上绘制矩形
Dec 24 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
laravel-admin 中列表筛选方法
2019/10/03 PHP
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
jquery交替变换颜色的三种方法 实例代码
2013/11/19 Javascript
table insertRow、deleteRow定义和用法总结
2014/05/14 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
js使用DOM操作实现简单留言板的方法
2015/04/10 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
JQuery悬停控制图片轮播——代码简单
2015/08/05 Javascript
php基于redis处理session的方法
2016/03/14 Javascript
关于预加载InstantClick的问题解决方法
2017/09/12 Javascript
JS验证码实现代码
2017/09/14 Javascript
手机注册发送验证码倒计时的简单实例
2017/11/15 Javascript
最实用的JS数组函数整理
2017/12/05 Javascript
IE8中jQuery.load()加载页面不显示的原因
2018/11/15 jQuery
Vue Router history模式的配置方法及其原理
2019/05/30 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
对于Python的框架中一些会话程序的管理
2015/04/20 Python
在Linux系统上安装Python的Scrapy框架的教程
2015/06/11 Python
python实现截取屏幕保存文件,删除N天前截图的例子
2019/08/27 Python
解决import tensorflow as tf 出错的原因
2020/04/16 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
2020/05/07 Python
解决python运行效率不高的问题
2020/07/20 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
2020/12/09 Python
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
大学毕业生文采飞扬的自我鉴定
2013/12/03 职场文书
酒店中秋节促销方案
2014/01/30 职场文书
法语专业求职信
2014/07/20 职场文书
学院党的群众路线教育实践活动第一阶段情况汇报
2014/10/25 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书
HTML+CSS+JS实现图片的瀑布流布局的示例代码
2021/04/22 HTML / CSS
浅谈react useEffect闭包的坑
2021/06/08 Javascript
详解Vue的列表渲染
2021/11/20 Vue.js
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL