A-A+

JS 巧用 && 与 ||

2017年10月19日 Web开发 暂无评论 阅读 104 views 次

在对于流程控制语句当中,我们最熟悉不过的就是

1 if (条件){ 2 //代码块  3 }else{ 4 //代码块 5 }

对于一个执行不同的代码来说,如果执行的代码很多,可能就有必要使用上面这种方式

但往往我们开发当中,也会碰到一些赋值操作,如果使用上面方式,未免显得太过冗余。

举个例子:

复制代码
var num1 = 10; var num2 = 20; // 假如 num2 > num1 就 alert( num2 ) 否则 alert( num1 )
// 可能见到的写法会有以下方式
if( num2 > num1 ){
  alert( num2 );
}else{
  alert( num1 );
} 
复制代码

可以看见以上方式,只是输出一个结果,却用了五行代码来去实现。

接下来,我们见证下怎么使用一行代码去替代上面五行代码实现的结果

复制代码
1 var num1 = 102 var num2 = 20; 3 4 // 第一种方式 也可以使用 三目运算符 5 alert( num2 > mum1 ? num2 : num1 ); 6 7 //第二种方式  就是使用 && ,|| 8 alert( num2 > num1 && num2 || num1 ); 
复制代码

 

使用 &&,|| 比三目运算的优势在于,它可以判断多个条件,也可以单独使用

举个 && 例子:

复制代码
var num1 = 10; var num2 = 5; // 假如 num1,num2 都大于10 则输出 num1+num2; var result = num1>10 && num2 >10 && num1+ num2 || 0;
       alert(result);
复制代码

我们开发知道,在开发当中,读取后端返回的数据可能因某种原因而未读取到,那么接收的数据如果是对象,都会在接收该字段的时候额外加上没有获取到时的字段

举个 || 例子:

var reuslt = res && res.data || []; if ( result.length ) return;

使用这种方式,可以通过条件判断是否使用该变量,假如是对象,如果没有获取到,而使用该对象属性,则会报错。

而避免这种模式,就是在使用的时候,一定要判断,判断,判断

打赏作者
如果文章对您有所帮助请打赏支持本站发展。

您的支持将鼓励我们继续创作!

[微信] 扫描二维码打赏

[支付宝] 扫描二维码打赏

标签:

给我留言

您必须 登录 才能发表留言!

Copyright © 前端技术分享休闲玩耍去处分享-大一网 保留所有权利.   Theme  Ality

用户登录 ⁄ 注册

分享到: