解释&&和||在javascript中的另类用法


Posted in Javascript onJuly 28, 2014

又开始研究起 Titanium 来,发现其官方出品的MVC框架(Alloy)还是挺不错的,刚开始苦于没有好的代码来学习,文档又少,所以一直没去详细研究,后来发现原来官方的 CodeStrong 就是一套非常不错的学习代码,只要看通了其整套代码,相信对Alloy的使用也基本会了~

在看其源码的同时,发现很多地方使用了诸如以下的用法:

$.clouds && ($.index.add($.clouds));

开始不是很理解,毕竟平时这样用的也少,上了下google后才知道原来这样写法非常方便好用(其实jquery的源码里也大量使用此方法)。以下引用一段网上找到的解释&&和||在javascript中的另类用法:
a() && b() :如果执行a()后返回true,则执行b()并返回b的值;如果执行a()后返回false,则整个表达式返回a()的值,b()不执行;
a() || b() :如果执行a()后返回true,则整个表达式返回a()的值,b()不执行;如果执行a()后返回false,则执行b()并返回b()的值;

&& 优先级高于 ||

看完后就相当清楚了,再看看具体代码:
alert((1 && 3 || 0) && 4); //结果4 ①
alert(1 && 3 || 0 && 4); //结果3 ②
alert(0 && 3 || 1 && 4); //结果4 ③

分析:

语句①:1&&3 返回3 => 3 || 0 返回 3 => 3&&4 返回 4
语句②:先执行1&&3 返回3,在执行0&&4返回0,最后执行结果比较 3||0 返回 3
语句③:先执行0&&3 返回0,在执行1&&4返回4,最后执行结果比较 0||4 返回 4
注:非0的整数都为true,undefined、null和空字符串”” 为false。

感觉javascript确实挺强挺灵活的!!

Javascript 相关文章推荐
浅析js封装和作用域
Jul 09 Javascript
js随机生成网页背景颜色的方法
Feb 26 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
May 11 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
Feb 14 Javascript
js中的DOM模拟购物车功能
Mar 22 Javascript
js弹性势能动画之抛物线运动实例详解
Jul 27 Javascript
echarts整合多个类似option的方法实例
Jul 10 Javascript
vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单
Sep 14 Javascript
vue组件开发之slider组件使用详解
Aug 21 Javascript
React Ant Design树形表格的复杂增删改操作
Nov 02 Javascript
Ajax常用封装库——Axios的使用
May 08 Javascript
一篇文章学会Vue中间件管道
Jun 20 Vue.js
wap手机图片滑动切换特效无css3元素js脚本编写
Jul 28 #Javascript
jQuery内置的AJAX功能和JSON的使用实例
Jul 27 #Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
Jul 27 #Javascript
jquery JSON的解析方式示例介绍
Jul 27 #Javascript
jQuery提交多个表单的小技巧
Jul 27 #Javascript
用javascript对一个json数组深度赋值示例
Jul 27 #Javascript
在JS数组特定索引处指定位置插入元素
Jul 27 #Javascript
You might like
Php+SqlServer实现分页显示
2006/10/09 PHP
php传值赋值和传地址赋值用法实例分析
2015/06/20 PHP
利用php输出不同的心形图案
2016/04/22 PHP
微信公众平台DEMO(PHP)
2016/05/04 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
JQuery EasyUI 对话框的使用方法
2010/10/24 Javascript
基于Jquery的开发个代阴影的对话框效果代码
2011/07/28 Javascript
JavaScript词法作用域与调用对象深入理解
2012/11/29 Javascript
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
2014/12/18 NodeJs
jQuery中:submit选择器用法实例
2015/01/03 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
原生javascript实现解析XML文档与字符串
2016/03/01 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
2016/05/25 Javascript
vue教程之toast弹框全局调用示例详解
2020/08/24 Javascript
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
JavaScript JMap类定义与使用方法示例
2019/01/22 Javascript
使用vue引入maptalks地图及聚合效果的实现
2020/08/10 Javascript
基于javascript实现移动端轮播图效果
2020/12/21 Javascript
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
2014/01/19 Python
python中使用OpenCV进行人脸检测的例子
2014/04/18 Python
Python RuntimeError: thread.__init__() not called解决方法
2015/04/28 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
python把转列表为集合的方法
2019/06/28 Python
python实现树的深度优先遍历与广度优先遍历详解
2019/10/26 Python
python小程序基于Jupyter实现天气查询的方法
2020/03/27 Python
Python列表的深复制和浅复制示例详解
2021/02/12 Python
英国的一家创新礼品和小工具零售商:Menkind
2019/08/24 全球购物
财务会计毕业生个人求职信
2014/02/03 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
小学新教师个人总结
2015/02/05 职场文书
三好学生个人总结
2015/02/15 职场文书
体检通知范文
2015/04/21 职场文书
上课讲话检讨书范文
2015/05/07 职场文书
导游词之天津古文化街
2019/11/09 职场文书
分析设计模式之模板方法Java实现
2021/06/23 Java/Android
了解Kubernetes中的Service和Endpoint
2022/04/01 Servers