Javascript的&&和||的另类用法


Posted in Javascript onJuly 23, 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 相关文章推荐
JQuery 简便实现页面元素数据验证功能
Mar 24 Javascript
Javascript字符串对象的常用方法简明版
Jun 26 Javascript
js清空表单数据的两种方式(遍历+reset)
Jul 18 Javascript
JavaScript中的acos()方法使用详解
Jun 14 Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
Sep 01 Javascript
详解JavaScript逻辑Not运算符
Dec 04 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
Oct 13 Javascript
js实现键盘自动打字效果
Dec 23 Javascript
bootstrap下拉菜单使用方法解析
Jan 13 Javascript
VUE + UEditor 单图片跨域上传功能的实现方法
Feb 08 Javascript
Angularjs实现页面模板清除的方法
Jul 20 Javascript
微信小程序canvas截取任意形状的实现代码
Jan 13 Javascript
jQuery获取节点和子节点文本的方法
Jul 22 #Javascript
jQuery打印图片pdf、txt示例代码
Jul 22 #Javascript
JavaScript匿名函数与委托使用示例
Jul 22 #Javascript
javascript中声明函数的方法及调用函数的返回值
Jul 22 #Javascript
js判断变量初始化的三种形式及推荐用的形式
Jul 22 #Javascript
网站接入QQ登录的两种方法
Jul 22 #Javascript
防止登录页面出现在frame中js代码
Jul 22 #Javascript
You might like
第十一节 重载 [11]
2006/10/09 PHP
一个php作的文本留言本的例子(六)
2006/10/09 PHP
PHP中session变量的销毁
2014/02/27 PHP
JS window.opener返回父页面的应用
2009/10/24 Javascript
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
2010/03/04 Javascript
dtree 网页树状菜单及传递对象集合到js内,动态生成节点
2012/04/14 Javascript
js同比例缩放图片的小例子
2013/10/30 Javascript
如何用JavaScript定义一个类
2014/09/12 Javascript
JavaScript实现复制或剪切内容到剪贴板功能的方法
2016/05/23 Javascript
前端js实现文件的断点续传 后端PHP文件接收
2016/10/14 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
2016/11/16 Javascript
纯原生js实现table表格的增删
2017/01/05 Javascript
js中作用域的实例解析
2017/03/16 Javascript
JS实现的简单下拉框联动功能示例
2018/05/11 Javascript
详解webpack之图片引入-增强的file-loader:url-loader
2018/10/08 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
layer iframe 设置关闭按钮的方法
2019/09/12 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
javascript浅层克隆、深度克隆对比及实例解析
2020/02/09 Javascript
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
对python数据切割归并算法的实例讲解
2018/12/12 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
2019/07/04 Python
使用TensorFlow-Slim进行图像分类的实现
2019/12/31 Python
TensorFlow 显存使用机制详解
2020/02/03 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
HTML5画渐变背景图片并自动下载实现步骤
2013/11/18 HTML / CSS
城市观光通行证:The Sightseeing Pass
2018/04/28 全球购物
bonprix匈牙利:女士、男士和儿童服装
2019/07/19 全球购物
数字天堂软件测试面试题
2012/12/23 面试题
意向协议书范本
2014/04/23 职场文书
销售团队口号大全
2014/06/06 职场文书
外贸业务员求职信
2014/06/16 职场文书
幼儿园户外活动总结
2014/07/04 职场文书
群众路线批评与自我批评发言稿
2014/10/16 职场文书
八年级数学教学反思
2016/02/17 职场文书
解决jupyter notebook图片显示模糊和保存清晰图片的操作
2021/04/24 Python