使用双叹号及&& || 进行骚操作

说起强制类型转换,大家能想起什么?但这篇文章不是只有强类型转换这样简单哟,它会让你开发另一种思路!

使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。

Boolean(val) 转换成Boolean

Number(val) 转换成数字

String(val) 转换成字符

以上三种很熟悉吧?在js中,将某值强制类型转换成布尔值当然可以使用Boolean()这种方法。需要用到布尔转换的地方还是很多的,但你要用这种方法吗?

其实还有一种方法,大家很少接触,就是'!!'你没看错,就是两个叹号。利用两个'!!'运算符来将一个值转换为布尔类型,要比Boolean()简单不少吧。

!!1 //true
!!0 //false
!!'' //false
!!'a' //true
!!null //false
!!{} //true
!![] //true  

为什么可以这样做呢?其实分析起来道理很简单。第一个'!'将值转换成布尔值并取其值的非值,第二个'!'将其布尔值还原,类似于“负负得正”的道理。我们看个例子吧:

以上就是双叹号的用法,当然不止'!!',还有&& 和 || 可以做判断使用。大家肯定知道这两点一个代表逻辑与一个代表逻辑或。那么怎么使用呢?使用赋值语句将多个值用&& 和 ||相连。

&&var a = 'a' && 0;a //0逐一检索&&相连的值,遇到第一个false值就将该值赋值给变量
&&var a = 'a' && 1;如果逐一检测没有false的值,就取最后一个值赋值给变量
||var a = '' || 1;逐一检索到第一个true值,直接复制给变量
||var a = '' || 0;注意检测如都是false值就取最后一个赋值给变量

这波操作虽然让我们眼前一亮,但在哪里用得到呢?我们先看个简单的函数,能不能懂,慢慢看别着急。使用 || 可以用于参数传递中。在封装某个函数的时候,传递的参数可能有,可能没有,这种情况就可以使用 || 处理。

function test(arr) {arr = arr || [];return arr;}


 

如果参数有数组,当然参数就是它自己。如果没有传参数或者传的是null或者undefined之类会转换为false的值,就在函数传递参数时做非空补充,避免在参数使用时出现问题。

那么&&在实 开发中哪里可以用到呢?举个例子吧!比如判断某个值后如果是false就执行回调函数。

function aaa(isOk,callBack) {isOk && callBack()};

以上就是想分享的内容啦!

希望大家能关注我的公众号web-jianma,手机浏览随时随地~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值