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实现切换页面布局使用介绍
Oct 09 Javascript
node.js中的fs.readdirSync方法使用说明
Dec 17 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
Sep 10 Javascript
Dojo获取下拉框的文本和值实例代码
May 27 Javascript
jquery实现下拉框多选方法介绍
Jan 03 Javascript
很棒的vue弹窗组件
May 24 Javascript
通过学习bootstrop导航条学会修改bootstrop颜色基调
Jun 11 Javascript
详解webpack 多页面/入口支持&公共组件单独打包
Jun 29 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
Aug 24 Javascript
vue路由中前进后退的一些事儿
May 18 Javascript
Vue请求java服务端并返回数据代码实例
Nov 28 Javascript
微信小程序自定义菜单切换栏tabbar组件代码实例
Dec 30 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
无数据库的详细域名查询程序PHP版(5)
2006/10/09 PHP
无数据库的详细域名查询程序PHP版(2)
2006/10/09 PHP
PHP批量生成缩略图的代码
2008/07/19 PHP
php基于dom实现的图书xml格式数据示例
2017/02/03 PHP
让iframe框架网页在任何浏览器下自动伸缩
2006/08/18 Javascript
jquery 3D球状导航的文章分类
2010/07/06 Javascript
JSON相关知识汇总
2015/07/03 Javascript
浅谈Sticky组件的改进实现
2016/03/22 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
JavaScript中数组Array.sort()排序方法详解
2017/03/01 Javascript
JQuery.dataTables表格插件添加跳转到指定页
2017/06/09 jQuery
详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结
2020/05/28 Javascript
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
2018/06/14 Python
python实现括号匹配的思路详解
2018/08/23 Python
python 画三维图像 曲面图和散点图的示例
2018/12/29 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
python3 批量获取对应端口服务的实例
2019/07/25 Python
150行Python代码实现带界面的数独游戏
2020/04/04 Python
python读取excel进行遍历/xlrd模块操作
2020/07/12 Python
Python创建简单的神经网络实例讲解
2021/01/04 Python
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
Canvas绘制浮动球效果的示例
2017/12/29 HTML / CSS
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
英国马匹装备和马术用品购物网站:Equine Superstore
2019/03/03 全球购物
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
怎么写自荐书范文
2014/02/12 职场文书
房地产项目建议书
2014/03/12 职场文书
学校总务处领导干部个人对照检查材料思想汇报
2014/10/06 职场文书
客房领班岗位职责
2015/02/11 职场文书
党员年度个人总结
2015/02/14 职场文书
公司放假通知范文
2015/04/14 职场文书
小学生节水倡议书
2015/04/29 职场文书
就业指导讲座心得体会
2016/01/15 职场文书
【js设计模式】SOLID五大设计原则
2022/03/24 Javascript