~的神奇用法

本文章内容主要来源于《你不知道的JavaScript(中卷)》

1、~是什么

非,强制类型转换,它首先将值强制类型转换为32位数字,然后执行字位操作“非”。

2、有一种用法

indexOf的用处是可以查找元素的位置,也可以检测是否含有子字符串,如果找到就返回他对应的索引位置,反之,返回-1。但是我们不应该拿结果与-1直接进行比较,这在代码中暴露了底层的实现细节。我们可以利用~和indexOf()将结果强制类型转换为真/假值:
截图来自《你不知道的js-中卷》

如果indexOf()返回-1,~将其转换成假值0,其他情况一律转换为真值。

3、另一种用法

~~的用法和Math.floor()的效果并不一样,它第一个波浪线是执行ToInt32并反转字位,然后第二个是再进行一次字位反转,最后得到的仍然是ToInt32的结果。特别注意一点,它只适用于32位数字,对负数的处理与Math.floor()也不同。
截图来自《你不知道的js-中卷》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值