JavaScript中奇特的~運算符

寫在最前

本次分享一下並不是很常用的按位非運算符~的原理以及一點點用法。


歡迎關注我的博客,不定期更新中——

JavaScript小衆系列開始更新啦

——何時完結不確定,寫多少看我會多少!這是已經更新的地址:

這個系列旨在對一些人們不常用遇到的知識點,以及可能常用到但不曾深入瞭解的部分做一個重新梳理,雖然可能有些部分看起來沒有什麼用,因爲平時開發真的用不到!但個人認爲糟粕也好精華也罷裏面全部蘊藏着JS一些偏本質的東西或者說底層規範,如果能適當避開舒適區來看這些小細節,也許對自己也會有些幫助~文章更新在我的博客,歡迎不定期關注。

~的規則是什麼

看下規範裏面的定義的~:

產生式 UnaryExpression : ~ UnaryExpression 按照下面的過程執行:

  1. 令 expr 爲解釋執行 UnaryExpression 的結果。

  2. 令 oldValue 爲 ToInt32(GetValue(expr))。

  3. 返回 oldValue 按位取反的結果。結果爲 32位 有符號整數。

總結一下即將數字進行抽象Toint32操作,再進行按位取反。那麼再來看下關於Toint32:


image
image

數字進行Toint32操作會轉化成32位有符號數,第一位爲符號位,後面31位爲表示整數數值。最後對數字進行按位取反即可得到~轉換後的結果。

舉個

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章