解释&&和||在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 相关文章推荐
JavaScript 模式之工厂模式(Factory)应用介绍
Nov 15 Javascript
JavaScript SetInterval与setTimeout使用方法详解
Nov 15 Javascript
jquery 提示信息显示后自动消失的具体实现
Dec 18 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
Apr 02 Javascript
jquery加载图片时以淡入方式显示的方法
Jan 14 Javascript
Javascript动画效果(3)
Oct 11 Javascript
vue scroller返回页面记住滚动位置的实例代码
Jan 29 Javascript
angularjs1.5 组件内用函数向外传值的实例
Sep 30 Javascript
使用JS获取页面上的所有标签
Oct 18 Javascript
微信小程序实现签到功能
Oct 31 Javascript
vue-父子组件和ref实例详解
Nov 10 Javascript
在vue中import()语法不能传入变量的问题及解决
Apr 01 Vue.js
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新手上路(三)
2006/10/09 PHP
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
2010/03/15 PHP
PHP删除数组中特定元素的两种方法
2013/07/02 PHP
Yii快速入门经典教程
2015/12/28 PHP
PHP连接MySQL数据库操作代码实例解析
2020/07/11 PHP
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
javascript for循环设法提高性能
2010/02/24 Javascript
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
jQuery在html有效在jsp无效的原因及解决方法
2013/08/02 Javascript
深入理解JavaScript系列(37):设计模式之享元模式详解
2015/03/04 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
微信小程序动态生成二维码的实现代码
2018/07/25 Javascript
详解vue在项目中使用百度地图
2019/03/26 Javascript
亲自动手实现vue日历控件
2019/06/26 Javascript
vue 动态组件用法示例小结
2020/03/06 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
2020/09/11 Javascript
浅析Python函数式编程
2018/10/06 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
Python爬虫获取页面所有URL链接过程详解
2020/06/04 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
如何利用python读取micaps文件详解
2020/10/18 Python
Django搭建项目实战与避坑细节详解
2020/12/06 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
Free People中国官网:波西米亚风格女装服饰
2016/08/30 全球购物
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
美国马匹用品和马钉购物网站:State Line Tack
2018/08/05 全球购物
C#如何判断当前用户是否输入某个域
2015/12/07 面试题
求职信的要素有哪些呢
2013/12/26 职场文书
大三预备党员入党思想汇报
2014/01/08 职场文书
趣味比赛活动方案
2014/02/15 职场文书
教师读书活动总结
2014/05/07 职场文书
普通党员自我剖析材料
2014/10/07 职场文书
销售员工作检讨书(推荐篇)
2014/10/18 职场文书
成功的商业计划书这样写才最靠谱
2019/07/12 职场文书