解释&&和||在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 相关文章推荐
Mozilla 表达式 __noSuchMethod__
Apr 05 Javascript
javascript replace()正则替换实现代码
Feb 26 Javascript
JQuery Tab选项卡效果代码改进版
Apr 01 Javascript
jQuery toggleClass应用实例(附效果图)
Apr 06 Javascript
js使用栈来实现10进制转8进制与取除数及余数
Jun 11 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
Mar 01 Javascript
Vue2学习笔记之请求数据交互vue-resource
Feb 23 Javascript
JS面试题大坑之隐式类型转换实例代码
Oct 14 Javascript
JS字典Dictionary类定义与用法示例
Feb 01 Javascript
jQuery ajax仿Google自动提示SearchSuggess功能示例
Mar 28 jQuery
深入解析vue 源码目录及构建过程分析
Apr 24 Javascript
vue中使用mxgraph的方法实例代码详解
May 17 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
用php来检测proxy
2006/10/09 PHP
一个用php3编写的简单计数器
2006/10/09 PHP
兼容PHP5的PHP目录管理函数库
2008/07/10 PHP
UCenter 批量添加用户的php代码
2012/07/17 PHP
php分页函数示例代码分享
2014/02/24 PHP
php使用PDO方法详解
2014/12/27 PHP
PHP stream_context_create()函数的使用示例
2015/05/12 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
JavaScript实现禁止后退的方法
2006/12/27 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
javascript 获取iframe里页面中元素值的方法
2014/02/17 Javascript
在AngularJS中使用AJAX的方法
2015/06/17 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
node.js cookie-parser之parser.js
2016/06/06 Javascript
微信小程序新手教程之页面打开数量限制
2019/03/03 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
三步实现ionic3点击退出app程序
2019/09/17 Javascript
JS严格模式原理与用法实例分析
2020/04/27 Javascript
浅谈使用nodejs搭建web服务器的过程
2020/07/20 NodeJs
Python列表计数及插入实例
2014/12/17 Python
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
Python numpy.array()生成相同元素数组的示例
2018/11/12 Python
python 三种方法实现对Excel表格的读写
2020/11/19 Python
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
美国最好的保健品打折网店:Swanson
2017/08/04 全球购物
文秘自荐信
2013/10/20 职场文书
医务人员竞聘职务自我评价分享
2013/11/08 职场文书
2014年师德承诺书
2014/05/23 职场文书
公司总经理岗位职责
2015/04/01 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
2015年公务员试用期工作总结
2015/05/28 职场文书
为什么阅读对所有年龄段的孩子都很重要?
2019/07/08 职场文书
导游词书写之黄山
2019/08/06 职场文书
浅谈Python基础之列表那些事儿
2021/05/11 Python
解决Laravel使用验证时跳转到首页的问题
2021/11/17 PHP
Ajax异步刷新功能及简单案例
2021/11/20 Javascript