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简单的拖动效果实现原理及示例
Jul 26 Javascript
js实现的在线调色板功能完整实例
Dec 21 Javascript
Angular.js中定时器循环的3种方法总结
Apr 27 Javascript
详解Angular2中Input和Output用法及示例
May 21 Javascript
使用Angular CLI进行单元测试和E2E测试的方法
Mar 24 Javascript
vue 利用路由守卫判断是否登录的方法
Sep 29 Javascript
基于javascript的拖拽类封装详解
Apr 19 Javascript
Django模板继承 extend标签实例代码详解
May 16 Javascript
JavaScript命名空间模式实例详解
Jun 20 Javascript
js 判断当前时间是否处于某个一个时间段内
Sep 19 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
Oct 16 Javascript
微信小程序实现电影App导航和轮播
Nov 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获取程序执行的时间
2013/06/09 PHP
composer.lock文件的作用
2016/02/03 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
phpstudy隐藏index.php的方法
2020/09/21 PHP
响应鼠标变换表格背景或者颜色的代码
2009/03/30 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
2013/11/14 Javascript
Jquery实现仿腾讯微博发表广播
2014/11/17 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
JavaScript中使用Math.PI圆周率属性的方法
2015/06/14 Javascript
jQuery判断多个input file 都不能为空的例子
2015/06/23 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
2015/09/23 Javascript
微信小程序 教程之注册程序
2016/10/17 Javascript
JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】
2016/12/12 Javascript
解决webpack dev-server不能匹配post请求的问题
2018/08/24 Javascript
VUE引入第三方js包及调用方法讲解
2019/03/01 Javascript
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
python解析基于xml格式的日志文件
2017/02/25 Python
Windows下Anaconda的安装和简单使用方法
2018/01/04 Python
pandas 小数位数 精度的处理方法
2018/06/09 Python
Python闭包函数定义与用法分析
2018/07/20 Python
python实现字符串加密成纯数字
2019/03/19 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
PyTorch中的C++扩展实现
2020/04/02 Python
CSS3实现多重边框的方法总结
2016/05/31 HTML / CSS
HTML5 input新增type属性color颜色拾取器的实例代码
2018/08/27 HTML / CSS
英格兰足协官方商店:England Store
2019/07/12 全球购物
地球鞋加拿大官网:Earth Shoes Canada
2020/11/17 全球购物
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
方正Java笔试题
2014/07/03 面试题
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
高中生物教学反思
2014/02/05 职场文书
医师定期考核实施方案
2014/05/07 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
《合作意向书》怎么写?
2019/08/20 职场文书
OpenCV-Python实现轮廓的特征值
2021/06/09 Python
深入理解pytorch库的dockerfile
2022/06/10 Python