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 插件实现图片延迟加载效果代码
Feb 06 Javascript
JS 各种网页尺寸判断实例方法
Apr 18 Javascript
表单验证插件Validation应用的实例讲解
Oct 10 Javascript
javascript表单事件处理方法详解
May 15 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
Oct 10 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
Jan 18 Javascript
微信小程序实现手势图案锁屏功能
Jan 30 Javascript
vue实现键盘输入支付密码功能
Aug 18 Javascript
js中自定义react数据验证组件实例详解
Oct 19 Javascript
微信小程序实现弹出层效果
May 26 Javascript
文章或博客自动生成章节目录索引(支持三级)的实现代码
May 10 Javascript
vue常用高阶函数及综合实例
Feb 25 Vue.js
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 is_file()和is_dir()用于遍历目录时用法注意事项
2010/03/02 PHP
PHP动态分页函数,PHP开发分页必备啦
2011/11/07 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
2019/10/15 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
IE6与IE7中,innerHTML获取param的区别
2009/03/15 Javascript
js鼠标滑过弹出层的定位IE6bug解决办法
2012/12/26 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
JS实现随机数生成算法示例代码
2013/08/08 Javascript
Javascript中浮点数相乘的一个解决方法
2014/06/03 Javascript
Javascript数组操作函数总结
2015/02/05 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
jquery实现叠层3D文字特效代码分享
2015/08/21 Javascript
js将json格式的对象拼接成复杂的url参数方法
2016/05/25 Javascript
正则表达式基本语法及表单验证操作详解【基于JS】
2017/04/07 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
2017/04/27 jQuery
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
2018/11/08 Javascript
VUE实现移动端列表筛选功能
2019/08/23 Javascript
jQuery实现每日秒杀商品倒计时功能
2019/09/06 jQuery
解决vue net :ERR_CONNECTION_REFUSED报错问题
2020/08/13 Javascript
Vue实现简单购物车功能
2020/12/13 Vue.js
Python简明入门教程
2015/08/04 Python
Python学习小技巧之列表项的拼接
2017/05/20 Python
python 数字类型和字符串类型的相互转换实例
2018/07/17 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2018/09/04 Python
对pandas中两种数据类型Series和DataFrame的区别详解
2018/11/12 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
2019/03/01 Python
PYTHON绘制雷达图代码实例
2019/10/15 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
2020/12/21 Python
简单的HTML5初步入门教程
2015/09/29 HTML / CSS
如何实现jdbc性能优化
2012/07/30 面试题
应届生法律顾问求职信
2013/11/19 职场文书
个人评价范文分享
2014/01/11 职场文书
交通安全横幅标语
2014/10/07 职场文书
课改心得体会范文
2016/01/25 职场文书