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 相关文章推荐
javascript 变量作用域 代码分析
Jun 26 Javascript
网页防止tab键的使用快速解决方法
Nov 07 Javascript
推荐6款基于jQuery实现图片效果插件
Dec 07 Javascript
JavaScript修改浏览器tab标题小技巧
Jan 06 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
Nov 29 Javascript
Spring mvc 接收json对象
Dec 10 Javascript
jQuery Validation Plugin验证插件手动验证
Jan 26 Javascript
Jquery根据浏览器窗口改变调整大小的方法
Feb 07 Javascript
利用JS实现简单的瀑布流加载图片效果
Apr 22 Javascript
js封装成插件_Canvas统计图插件编写实例
Sep 12 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
May 23 jQuery
通过jQuery学习js类型判断的技巧
May 27 jQuery
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 COOKIE设置为浏览器进程
2009/06/21 PHP
PHP 上传文件大小限制
2009/07/05 PHP
PHP5中虚函数的实现方法分享
2011/04/20 PHP
phpmyadmin在宝塔面板里进不去的解决方案
2020/07/06 PHP
encode脚本和normal脚本混用的问题与解决方法
2007/03/08 Javascript
兼容ie和firefox js关闭代码
2008/12/11 Javascript
js parentElement和offsetParent之间的区别
2010/03/23 Javascript
JavaScript 参数中的数组展开 [译]
2012/09/21 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
使用JS或jQuery模拟鼠标点击a标签事件代码
2014/03/10 Javascript
connect中间件session、cookie的使用方法分享
2014/06/17 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
javascript实现在线客服效果
2015/07/15 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
理解javascript模块化
2016/03/28 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
微信小程序中weui用法解析
2019/10/21 Javascript
Python中使用md5sum检查目录中相同文件代码分享
2015/02/02 Python
python中MethodType方法介绍与使用示例
2017/08/03 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
Python threading的使用方法解析
2019/08/28 Python
详解一种用django_cache实现分布式锁的方式
2019/09/01 Python
python绘制无向图度分布曲线示例
2019/11/22 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
如何在scrapy中集成selenium爬取网页的方法
2020/11/18 Python
美国知名的家庭连锁百货商店:Boscov’s
2017/07/27 全球购物
总务岗位职责
2013/11/19 职场文书
大课间体育活动方案
2014/03/12 职场文书
给孩子的新年寄语
2014/04/08 职场文书
2014年优秀班主任工作总结
2014/12/16 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书
检讨书范文大全
2015/05/07 职场文书
2015年妇女工作总结
2015/05/14 职场文书
地道战观后感500字
2015/06/04 职场文书