十分好用的类型转换

暑假到了,我终于又可以愉快的写文章啦~~

今天的话题很轻松,即标题所

述,介绍一下一些十分简便的类型转换用法。废话不多说,直接进入正题!

小伙伴们有没有想过如何将数字字符串转化为数字呢?

可能你们会用到Number,parseInt等等。不过现在有一种更加简便的方法,直接使用"+"号运算符!

console.log((+”3”) +5);// 8

在这个例子当中,字符串3使用了"+"号运算符转化为真正的数字,并进行运算。

如果要获得一个元素的宽高,你们可能会想到使用window.getComputedStyle()这个方法,但是其返回的是含有px的字符串,而我们想要的是数值,那怎么办呢?

console.log(window.getComputedStyle(document.body).height);// 796px

console.log(parseInt(window.getComputedStyle(document.body).height));// 796

这时候,我们的parseInt大展身手啦。这个全局方法会从字符串的左端向着字符串的右端提取数字直到不是数字终止,然后将这些数字转化为数值类型。这个方法同理于parseFloat。

这里需要注意一下,这两个方法是可以传入两个参数的,并且由于他们的转化成数值的实现机制,导致了出现很多令人痛苦的坑,不过只要知道该实现机制,都能清楚的解释入坑的原因~ 今天只是介绍方便的用法,具体的就不展开介绍了。

使用双感叹号来转化为布尔值!

console.log(!!undefined);//false

console.log(!!null);//false

console.log(!!””);//false

console.log(!!);//false

console.log(!!NaN);//false

console.log(!!1);//true

console.log(!!”a”);//true

console.log(!!{});//true

console.log(!![]);//true

使用双感叹号将值转化成布尔值,就可以不用使用Boolean()来进行转化,并且也容易理解。

使用"~~"两次取反截取整数!

console.log(~~"123.123");//123

console.log(~~"-123.123");//-123

se

这样就能避免使用Math.floor()来思考如何转化了(Math.floor用于负浮点数的时候,整数部分会改变)。

强制类型转化是JavaScript中的一个大坑,不过,只要理解到位,取其精华,去其槽粕,定能让坑变成你成功路上的垫脚石!

喜欢的朋友们可以点击左上角"Miku灬 Rua"关注,也可以扫下方二维码~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180710G1V3U100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券