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 读取页面load get post ajax 四种方式代码写法
Apr 02 Javascript
js循环改变div颜色具体方法
Jun 25 Javascript
通用javascript代码判断版本号是否在版本范围之间
Nov 29 Javascript
基于JavaScript实现TAB标签效果
Jan 12 Javascript
jQuery实现checkbox列表的全选、反选功能
Nov 24 Javascript
详解Angualr 组件间通信
Jan 21 Javascript
Vue 滚动行为的具体使用方法
Sep 13 Javascript
浅谈angular.copy() 深拷贝
Sep 14 Javascript
浅析Angular19 自定义表单控件
Jan 31 Javascript
node.js实现为PDF添加水印的示例代码
Dec 05 Javascript
layer实现弹出层自动调节位置
Sep 05 Javascript
vue学习之Vue-Router用法实例分析
Jan 06 Javascript
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中对数据库操作的封装
2006/10/09 PHP
一道求$b相对于$a的相对路径的php代码
2010/08/08 PHP
在WINDOWS中设置计划任务执行PHP文件的方法
2011/12/19 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
2013/06/17 PHP
php查询ip所在地的方法
2014/12/05 PHP
php静态文件生成类实例分析
2015/01/03 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
2019/01/10 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
js 实现无缝滚动 兼容IE和FF
2009/07/15 Javascript
JavaScript中使用document.write向页面输出内容实例
2014/10/16 Javascript
Angular.js回顾ng-app和ng-model使用技巧
2016/04/26 Javascript
Django+Vue跨域环境配置详解
2018/07/06 Javascript
详解Vue.js使用Swiper.js在iOS
2018/09/10 Javascript
举例讲解Python中字典的合并值相加与异或对比
2016/06/04 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
机器学习10大经典算法详解
2017/12/07 Python
浅谈python日志的配置文件路径问题
2018/04/28 Python
Python检查ping终端的方法
2019/01/26 Python
python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】
2019/07/06 Python
Python 捕获代码中所有异常的方法
2020/08/03 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
很酷的小工具和电子产品商城:GearBest
2016/11/19 全球购物
Gap英国官网:Gap UK
2018/07/18 全球购物
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
新媒传信软件测试面试题
2013/02/24 面试题
银行实习人员自我鉴定
2013/09/22 职场文书
工程售后服务承诺书
2014/05/21 职场文书
英语教师自荐信
2014/05/26 职场文书
cf战队收人口号
2014/06/21 职场文书
解除劳动合同协议书(样本)
2014/10/02 职场文书
迁户口计划生育证明
2014/10/19 职场文书
2014年创卫工作总结
2014/11/24 职场文书
会议主持人开场白台词
2015/05/28 职场文书
2016社区平安家庭事迹材料
2016/02/26 职场文书
Python包管理工具pip的15 个使用小技巧
2021/05/17 Python
python数据处理之Pandas类型转换
2022/04/28 Python