说起强制类型转换,大家能想起什么?但这篇文章不是只有强类型转换这样简单哟,它会让你开发另一种思路!
使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。
- Boolean(val) 转换成Boolea
- 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;}
test([1,2,3])
test()
如果参数有数组,当然参数就是它自己。如果没有传参数或者传的是null或者undefined之类会转换为false的值,就在函数传递参数时做非空补充,避免在参数使用时出现问题。
那么&&在实 开发中哪里可以用到呢?举个例子吧!比如判断某个值后如果是false就执行回调函数。
function aaa(isOk,callBack) {isOk && callBack()};
aaa(1,function(){console.log('haha')});
以上就是想分享的内容啦!
也希望大家能关注我的公众号web-jianma,手机浏览随时随地~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。