<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>javascript逻辑与</title>
<!--
逻辑与(&&)个人理解:
前提条件:
-逻辑与的判定顺序:从左到右;
-只要遇到假/null/undefined/NaN就不会再往下判定。直接返回第一个假/null/undefined/NaN的值
-全真时返回最后一个真的值
1)操作数都是布尔值
全真时:返回true
1假或多假:返回false
2)操作数为多类型混合(表达式、布尔值等其他类型)
1假/多假/全假:返回第一个假
全真:返回最后一个真
3)特殊情况:操作数为null/undefined/NaN
只要含有null/undefined/NaN,就会返回null/undefined/NaN;
如果null/undefined/NaN同时存在,则返回null/undefined/NaN中的第一个。
-->
</head>
<body>
<script>
var a=10,b="10",c=20,d="",e=0,f="dd",g;
/* 逻辑与:布尔型 */
console.log(a==b && a<c);//true
console.log(a==b && a>c);//false
/* 逻辑与:混合型 */
console.log(e && a);//0,第一个操作数e假,返回第一个,e
console.log(a && d);//"",第一个操作数a真,返回第二个,d
console.log(a && b && c);//20,a\b\c都为true,返回最后一个,c
console.log(a && d && e);//"",a真,d假,e假,返回第一个假,d=""
console.log(a && b && c);//20,全真,返回最后一个真
console.log(null && a && b && c);//null
console.log((a-f) && a && b);//NaN
console.log(g && a && b);//undefined
console.log(NaN && null && defined);//NaN,这三个谁是第一返回谁
</script>
</body>
</html>

javascript逻辑与(&&)的更多相关文章

  1. JavaScript逻辑and、or、not运算符详解

    一.AND详解: 在JavaScript中,逻辑 AND 运算符用双和号(&&)表示. 需要说明的是:逻辑AND运算的运算数可以是任何类型的,不止是Boolean值,如果某个运算数不是 ...

  2. javascript逻辑非(!/!!)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. javascript逻辑或(||)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. JS && || 陷阱 javascript 逻辑与、逻辑或 【转】

    通常来说逻辑运算a&&b和a||b分别是逻辑与运算和逻辑或运算,返回的是一个布尔值,要么为true,要么为false. 比如在PHP里面a&&b返回类型永远是布尔值,非 ...

  5. HTML5 网页 漂浮窗广告 JavaScript逻辑 - demo

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. JavaScript 逻辑与(&&) 与 逻辑或(||) 运算规则

    逻辑与(&&) 逻辑与(&&)操作可以应用于任何的操作类型,不仅仅是布尔值, 在有一个操作数不是布尔值的情况下,&&操作符就不一定返回布尔值:遵循下面规 ...

  7. javascript 逻辑操作符

    JS按位与(&) 0001 & 0011 --- 0001 只有两个数的值为1时,才返回1 JS按位异或  (^) 0101 (expression1)  1100 (expressi ...

  8. JavaScript逻辑分支switch 练习题

    1.输入月份,显示当月的天数, 利用case穿透简化代码  var month = prompt("请输入月份"); var year = prompt("请输入年份&q ...

  9. JavaScript学习总结(三)——逻辑And运算符详解

    在JavaScript中,逻辑 AND 运算符用双和号(&&)表示 1 var bTrue = true; 2 var bFalse = false; 3 var bResult = ...

随机推荐

  1. ASP.NET请求过程-Module

    管道模型     上图中为Http请求在Asp.net程序中处理的过程.管道处理模型来自上面的HttpApplication,管道处理模型其实就是多个Module(其实这些module都是在往http ...

  2. 转载:微信开放平台开发第三方授权登陆(二):PC网页端

    微信开放平台开发第三方授权登陆(二):PC网页端 2018年07月24日 15:13:32 晋文子上 阅读数 12644更多 分类专栏: 微信开发 第三方授权登录   版权声明:本文为博主原创文章,遵 ...

  3. python可变类型与不可变类型

    一.可变类型与不可变类型的特点 1.不可变数据类型 不可变数据类型在第一次声明赋值声明的时候, 会在内存中开辟一块空间, 用来存放这个变量被赋的值,  而这个变量实际上存储的, 并不是被赋予的这个值, ...

  4. double check

    http://www.cnblogs.com/limingluzhu/p/5156659.html http://blog.csdn.net/chenchaofuck1/article/details ...

  5. java中单双引号的区别

    单引号: 单引号包括的是单个字符,表示的是char类型.例如: char  a='1' 双引号: 双引号可以包括0个或者多个字符,表示的是String类型. 例如: String s="ab ...

  6. C# explicit interface implementation(显式接口实现)

    C# explicit interface implementation 某个类要实现两个包含相同方法名的接口, 应该如何实现这两个方法? namespace ExplicitInterfaceImp ...

  7. opencv中自适应阈值函数的实现(c++)

    根据<面向飞机蒙皮接缝的线结构光检测技术研究_张卡>论文中的原理,编写了自适应阈值函数 原理: //计算灰度最大最小值 void MaxGrayValue(Mat image,int &a ...

  8. JVM学习笔记——类加载过程

    JVM学习笔记——类加载过程 类加载模型——双亲委派模型(Parents Delegation Model)也可称为“溯源委派加载模型” Java的类加载器是一个运行时核心基础设施模块,主要是启动之初 ...

  9. C# 控制台日历 region分区编写思想

    已知道1900-1-1为星期一. 模块分区 //获取用户的正确输入并分别保存到变量year和month中 //声明一个用于保存空白和当月日期数的集合dates //遍历输出集合dates using ...

  10. iOS中的分类(category)和类扩展(extension)

    今天在研究swift的时候看到了分类和扩展.这是两个十分重要有用的功能,但是之前用的不多,没有深入了解过,在今天就从头理一遍. 一.分类(Category): 概念: 分类(Category)是OC中 ...