解释&&和||在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 相关文章推荐
Jquery Ajax方法传值到action的方法
May 11 Javascript
Node.js中使用mongoskin操作mongoDB实例
Sep 28 Javascript
JavaScript将字符串转换为整数的方法
Apr 14 Javascript
js/jquery判断浏览器类型的方法小结
May 12 Javascript
jquery实现的Banner广告收缩效果代码
Sep 02 Javascript
js实现canvas图片与img图片的相互转换的示例
Aug 31 Javascript
快速搭建vue2.0+boostrap项目的方法
Apr 09 Javascript
JS中移除非数字最多保留一位小数
May 09 Javascript
js动态设置select下拉菜单的默认选中项实例
Aug 21 Javascript
如何通过setTimeout理解JS运行机制详解
Mar 23 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
Apr 30 Javascript
JS实现电脑虚拟键盘的操作
Jun 24 Javascript
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
德生PL660的电路分析和打磨
2021/03/02 无线电
相对路径转化成绝对路径
2007/04/10 PHP
对象失去焦点时自己动提交数据的实现代码
2012/11/06 PHP
PHP基础知识介绍
2013/09/17 PHP
php lcg_value与mt_rand生成0~1随机小数的效果对比分析
2017/04/05 PHP
php利用ZipArchive类操作文件的实例
2020/01/21 PHP
自定义右键属性覆盖浏览器默认右键行为实现代码
2013/02/02 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
jquery Ajax 实现加载数据前动画效果的示例代码
2014/02/07 Javascript
js实现鼠标点击左上角滑动菜单效果代码
2015/09/06 Javascript
jQuery实现图片轮播效果代码
2016/09/27 Javascript
jquery仿京东侧边栏导航效果
2017/03/02 Javascript
让nodeJS支持ES6的词法----babel的安装和使用方法
2017/07/31 NodeJs
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
element ui table(表格)实现点击一行展开功能
2018/12/04 Javascript
详解Vue之父子组件传值
2019/04/01 Javascript
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
python实现的简单文本类游戏实例
2015/04/28 Python
Python 多线程不加锁分块读取文件的方法
2018/12/11 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
Python绘制堆叠柱状图的实例
2019/07/09 Python
关于ZeroMQ 三种模式python3实现方式
2019/12/23 Python
对pytorch的函数中的group参数的作用介绍
2020/02/18 Python
python实现UDP协议下的文件传输
2020/03/20 Python
Python使用itcaht库实现微信自动收发消息功能
2020/07/13 Python
印度尼西亚值得信赖的第一家网店:Bhinneka
2018/07/16 全球购物
彪马西班牙官网:PUMA西班牙
2019/06/18 全球购物
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
2012/05/24 面试题
国际贸易专业个人求职信格式
2014/02/02 职场文书
读书演讲主持词
2014/03/18 职场文书
学校学习雷锋活动总结
2014/07/03 职场文书
义诊活动通知
2015/04/24 职场文书
2019年最新版见习人员管理制度!
2019/07/08 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python