第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

JS 位運(yùn)算小結(jié)

標(biāo)簽:
Node.js JavaScript
位运算应用场景:
  1. 偷懒简写(|): 取整、断言
  2. 标志位判断 (&): 权限控制
  3. 去掉高位/低位(&): 比较特定位、子网掩码
  4. 数值交换(^): 加密算法、生成随机数/哈希
  5. 构造属性集(|): 边界判断
  6. 缺省数值类型值(|):默认端口
  7. 位填充(>>): HEX2RGB、leftPad
  8. 试图提升算术运算性能
位运算示例:

1. 求 2 的 n 次方:

bitwise ES5 ES6+
1 << n Math.pow(2, n) 2 ** n

原理: 左移一位, 相当于将原数值与 2 相乘一次 , 即 m << n === m * Math.pow(2, n)

2. 求中间索引

bitwise ES5 ES6+
arr.length >> 1 Math.floor(arr.length / 2)) -

原理: 右移一位,相当于原数值除 2 后向下取整

3. 判断索引存在

bitwise ES5 ES6+
!!~'abc'.indexOf('d') 'abc'.indexOf('d') !== -1 'abc'.includes('d')

原理: 按位非 ~-1 === 0

4. 变量交换

bitwise ES5 ES6+
a ^= b; b ^= a; a ^= b; t = a; b = a; b = t; [b, a] = [a, b]

原理: 按位异或 1 ^ 1 === 0, 0 ^ 0 === 1

5. 分支开关

bitwise ES5 ES6+
flag ^= 1; flag = flag ? 0 : 1; -

原理: 按位异或 1 ^ 1 === 0, 0 ^ 0 === 1

6. 截取整数位

bitwise ES5 ES6+
~~-9.9; -9.9>>0; parseInt(-9.9) Math.trunc(-9.9)

原理: 位运算会默认将非数字类型转换成数字类型再进行运算
注意:

  1. 以上值(还有 -9.9|0 ) 都为 -9, 而 Math.floor(-9.9) 值为 -10
  2. 位运算取整方法不适用超过32位整数最大值 2147483647 的数: 2147483649.4 | 0 的值为 -2147483647

参考:

[1] 二进制位运算符

[2] 巧用 JS 位运算

[3] 由left-pad扯到JS中的位运算

點(diǎn)擊查看更多內(nèi)容
1人點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消