JavaScript之运算符(二)

       javascript运算符在工作中的运用可以说是无处不在,而逻辑运算符在其中又在其中占不小的比例。

       逻辑运算符常用于布尔(逻辑)值之间; 当操作数都是布尔值时,返回值也是布尔值。 不过实际上&&和||返回的是一个特定的操作数的值,所以当它用于非布尔值的时候,返回值就可能是非布尔值。

逻辑与&&
1、两边条件都为true时,结果才为true;
2、如果有一个为false,结果就为false;
3、当第一个条件为false时,就不再判断后面的条件

数值参与逻辑与运算时,结果为true,那么会返回的会是第二个为真的值;如果结果为false,返回的会是第一个为假的值。可简略总结为返回第一个是 false 的操作数 或者 最后一个是 true的操作数

console.log( 5 && 4 ); //4  当结果为真时,返回第二个为真的值 
console.log( 0 && 4 ); //0 当结果为假时,返回第一个为假的值
console.log( a && 4 );//4 
console.log('a'&&'3')//3
console.log(1 && 2 && 0);  //0
console.log(1 && 0 && 1);  //0
console.log(1 && 2 && 3);  //3

逻辑或||
1、只要有一个条件为true时,结果就为true;
2、当两个条件都为false时,结果才为false;
3、当一个条件为true时,后面的条件不再判断

数值参与逻辑或运算时,结果为true,会返回第一个为真的值;如果结果为false,会返回第二个为假的值。可简略总结为返回第一个是 true 的操作数 或者 最后一个是 false的操作数

console.log(e||4)  // 4
console.log(1 || 2 || 0); //1
console.log(0 || 2 || 1); //2
console.log(0 || 0 || false); //false

逻辑非!
当条件为false时,结果为true;反之亦然。

console.log(!"")  // true
var d; console.log(!d)  // true
var a=[1,2,3];console.log(!a)  // false
var b="try";console.log(!b)  // false
var obj = new Object();console.log(!obj) // false
var e=[];console.log(!e)  // false
var f={};console.log(!f)  // false

注意:

(1)空数组([])和空对象({})
console.log([] == false) //true
console.log({} == false) //false
console.log(Boolean([])) //true
console.log(Boolean({})) //true
 所以在 if 中,[] 和 {} 都表现为 true 

(2)在 JavaScript,常见的 false 值:
0, '0', +0, -0, false, ''(空字符串),undefined,null,NaN

javascript逻辑运算符的优先级
                             ! > && > ||

var a = true || false && true;   
      ↓
var a = true ||  false
      ↓
var a = true;

转换
简单罗列两个AND与OR之间的转换
(1)将 AND 转换为 OR

a && b   => !(!a || !b)

(2)将 OR 转换为 AND

a||b  =>  !(!a && !b)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,216评论 0 13
  • 表达式 表达式是由数字、运算符、数字分组符号(如括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合...
    劼哥stone阅读 591评论 0 4
  • 运算符是处理数据的基本方法,用来从现有的值得到新的值。JavaScript 提供了多种运算符,本章逐一介绍这些运算...
    许先生__阅读 625评论 0 3
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,027评论 19 139
  • 请注意: 放风筝的基本条件。目的是为了让风筝拥有生命,在天空中自由飞翔。(让孩子成为一个人,拥有独立自主的思想和勇...
    岭月松风阅读 560评论 0 1