解释&&和||在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 相关文章推荐
运算符&&的三个不同层次
Apr 07 Javascript
jQuery弹出(alert)select选择的值
Apr 21 Javascript
关于js内存泄露的一个好例子
Dec 09 Javascript
JQuery1.8 判断元素是否绑定事件的方法
Jul 10 Javascript
js与css实现弹出层覆盖整个页面的方法
Dec 13 Javascript
jQuery给元素添加样式的方法详解
Dec 30 Javascript
JavaScript基础知识及常用方法总结
Jan 10 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
Aug 10 Javascript
Vue监听数组变化源码解析
Mar 09 Javascript
vue.js中created方法作用
Mar 30 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
Sep 03 Javascript
Vue computed 计算属性代码实例
Apr 22 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
php5.5新数组函数array_column使用
2013/07/08 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
JS 控制小数位数的实现代码
2011/08/02 Javascript
js精度溢出解决方案
2012/12/02 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
2013/04/12 Javascript
解析Jquery取得iframe中元素的几种方法
2013/07/04 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
如何将网页表格内容导入excel
2014/02/18 Javascript
WEB前端设计师常用工具集锦
2014/12/09 Javascript
如何通过js实现图片预览功能【附实例代码】
2016/03/30 Javascript
JS实现左右无缝轮播图代码
2016/05/01 Javascript
深入理解JavaScript中的浮点数
2016/05/18 Javascript
Vue.js系列之项目结构说明(2)
2017/01/03 Javascript
解决ionic和angular上拉加载的问题
2017/08/03 Javascript
浅谈sass在vue注意的地方
2017/08/10 Javascript
Vue Cli与BootStrap结合实现表格分页功能
2017/08/18 Javascript
基于打包工具Webpack进行项目开发实例
2018/05/29 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
零基础写python爬虫之使用Scrapy框架编写爬虫
2014/11/07 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
python编程测试电脑开启最大线程数实例代码
2018/02/09 Python
Django使用HttpResponse返回图片并显示的方法
2018/05/22 Python
OpenCV图像颜色反转算法详解
2019/05/13 Python
使用Python将图片转正方形的两种方法实例代码详解
2020/04/29 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
css3实现信纸/同学录效果的示例代码
2018/12/11 HTML / CSS
欧洲最大的婴幼儿服装及内衣公司:Petit Bateau(小帆船)
2016/08/16 全球购物
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
幸福家庭事迹材料
2014/02/03 职场文书
酒店管理专业自荐信
2014/05/23 职场文书
关于九一八事变的演讲稿2014
2014/09/17 职场文书
六年级学生期末评语
2014/12/26 职场文书
2015年迎新晚会策划书
2015/07/16 职场文书
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android