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 相关文章推荐
Jquery 表单取值赋值的一些基本操作
Oct 11 Javascript
jQuery EasyUI NumberBox(数字框)的用法
Jul 08 Javascript
js去字符串前后空格5种实现方法及比较
Apr 03 Javascript
JS实现随机化快速排序的实例代码
Aug 01 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
May 11 Javascript
逻辑表达式中与或非的用法详解
Jun 06 Javascript
原生JS:Date对象全面解析
Sep 06 Javascript
详解用node-images 打造简易图片服务器
May 08 Javascript
jQuery操作css样式
May 15 jQuery
微信小程序中使用自定义图标(阿里icon)的方法
Aug 20 Javascript
解决vue scoped html样式无效的问题
Oct 24 Javascript
jquery实现穿梭框功能
Jan 19 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
《心理测量者3》剧场版动画预告
2020/03/02 日漫
在普通HTTP上安全地传输密码
2007/07/21 PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
2014/01/17 PHP
php获得用户ip地址的比较不错的方法
2014/02/08 PHP
PHP 使用redis简单示例分享
2015/03/05 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
2017/03/15 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
PHP字符串与数组处理函数用法小结
2020/01/07 PHP
document.all还是document.getElementsByName?
2006/07/21 Javascript
Web层改进II-用xmlhttp 无声息提交复杂表单
2007/01/22 Javascript
JavaScript RegExp方法获取地址栏参数(面向对象)
2009/03/10 Javascript
js中indexof的用法详细解析
2013/12/24 Javascript
用jquery实现的一个超级简单的下拉菜单
2014/05/18 Javascript
Jquery实现鼠标移动放大图片功能实例
2015/03/25 Javascript
微信小程序实现图片轮播及文件上传
2017/04/07 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
2017/06/13 Javascript
如何编写一个d.ts文件的步骤详解
2018/04/13 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
2019/11/08 Javascript
python进阶教程之动态类型详解
2014/08/30 Python
python dict.get()和dict['key']的区别详解
2016/06/30 Python
使用pandas的DataFrame的plot方法绘制图像的实例
2018/05/24 Python
django admin 后台实现三级联动的示例代码
2018/06/22 Python
python射线法判断检测点是否位于区域外接矩形内
2019/06/28 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
css3图片边框border-image的用法
2017/06/30 HTML / CSS
HTML5中实现拖放效果无须借助javascript
2012/12/26 HTML / CSS
HTML5 canvas基本绘图之绘制五角星
2016/06/27 HTML / CSS
Banana Republic英国官网:香蕉共和国,GAP集团旗下偏贵族风
2018/04/24 全球购物
UNIX特点都有哪些
2016/04/05 面试题
网上快餐厅创业计划书
2014/02/01 职场文书
灰雀教学反思
2014/04/28 职场文书
使用numpy nonzero 找出非0元素
2021/05/14 Python
总结几个非常实用的Python库
2021/06/26 Python
详解非极大值抑制算法之Python实现
2021/06/28 Python
win11无线投屏在哪设置? win11无线投屏功能的使用方法
2022/04/08 数码科技