在书上看到的: array[Math.random()*array.length)>>0] 上面表示啥呢?
此操作符>>原本用于将操作数进行(二进制)右移操作,但是在这里,(Math.random()*array.length)>>0利用的是它取整的效果:右移0位,即没有位移,但是仍然做了取整的操作。
>>
(Math.random()*array.length)>>0
你少打了一个括号>>是位运算的右移,就是把操作数对应的二进制数整体右移一位(最高位补0,最低位砍掉)。>>x相当于除以2的x次方>>0就是Math.floor()
>>x
>>0
Math.floor()
10 回答11.6k 阅读
2 回答3.1k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
2 回答2.1k 阅读✓ 已解决
4 回答2.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
3 回答11.8k 阅读✓ 已解决
10 回答15k 阅读✓ 已解决
6 回答22.5k 阅读✓ 已解决
4 回答7.2k 阅读✓ 已解决
2.1k 阅读
此操作符
>>
原本用于将操作数进行(二进制)右移操作,但是在这里,(Math.random()*array.length)>>0
利用的是它取整的效果:右移0位,即没有位移,但是仍然做了取整的操作。