在js中&&、||不一定都是用来判断一个表达式的逻辑值是true、false,更多的是用来依据真值或者假值执行相应操作!

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。

因此,在js中,下面的写法是等价的:

if(a){
b
}
//等价于
a&&(b)
//b可以是一个function调用表达式,或者是多个语句用","串起来

最新文章

  1. (一)java arcgis开发环境搭建
  2. 【faster-rcnn】训练自己的数据——修改图片格式、类别
  3. php 用户登录验证
  4. D3D的内存类型
  5. [转]MFC中UpdateData()函数的使用
  6. 跨域请求之JSONP 三
  7. 基于 Jenkins 快速搭建持续集成环境--转
  8. golang protobuf
  9. TCP服务器:多进程
  10. [小知识] 获取浏览器UA标识
  11. WPF 验证没有通过无法保存数据(非常好)+ 虚似数据库
  12. JS--dom对象:document object model文档对象模型
  13. HTML使用CSS样式的方法
  14. PHP快速排序(递归)
  15. C# 动态生成类 枚举等
  16. 单用户模式&救援模式&克隆虚拟机&Linux机器相互登录
  17. kafka传数据到Flink存储到mysql之Flink使用SQL语句聚合数据流(设置时间窗口,EventTime)
  18. 动态权限<一>基本介绍
  19. Ubuntu安装Nginx和正确卸载Nginx Nginx相关
  20. WPF中DataGrid的应用-绑定,增改删,分页,样式

热门文章

  1. html5的在ie6,7,8兼容
  2. HTTP的报文格式解析
  3. mywebsite1
  4. IO与文件读写---使用Apache commons IO包提高读写效率
  5. Git - 常用技能
  6. Performance tool httperf
  7. Java 注解机制
  8. 一句代码美化你的下框之jquery.selectMM修复版(jquery.selectMM v0.9 beta 20141217)
  9. jQ中prop与attr的区别
  10. hdu 2295 Radar 重复覆盖+二分