Javascript雙重否定運(yùn)算的具體使用
雙位 NOT(~~)
按位運(yùn)算符 ~~ 表示否定:
~~something;
按位NOT運(yùn)算符(~)將獲取其操作數(shù),將其轉(zhuǎn)換為 32 位整數(shù),并將反轉(zhuǎn)每個位,例如:
00000000000000000000000000001001 ...becomes 11111111111111111111111111110110
如果操作數(shù)是一個數(shù)字,并且它不是 NaN 或者 Infinity 那么~~具有將其四舍五入為零的效果(Math.ceil表示負(fù)數(shù),Math.floor表示正數(shù))。如果它不是數(shù)字,那么內(nèi)部函數(shù)會將其轉(zhuǎn)換為零。
以下是雙位 NOT 操作的一些示例:
~~null; // => 0
~~undefined; // => 0
~~0; // => 0
~~{}; // => 0
~~[]; // => 0
~~(1/0); // => 0
~~false; // => 0
~~true; // => 1
~~1.2543; // => 1
~~4.9; // => 4
~~(-2.999); // => -2~~的地板功能(flooring )使其成為更好的選擇,如果您知道自己正在處理正數(shù)——它速度更快,占用的字符更少。雖然它的可讀性不太好,但我希望它能慢慢成為 JS 領(lǐng)域非常知名的技術(shù),這樣我們都可以使用它而不必?fù)?dān)心受到指責(zé)。Math.floor~~
這對于規(guī)范化您期望為整數(shù)的參數(shù)非常有用。以 MDC 建議提供給不支持的瀏覽器為例:
/*Array.prototype.indexOf = function...*/
var from = Number(arguments[1]) || 0;
from = (from < 0)
? Math.ceil(from)
: Math.floor(from);
/* 在去:~~ */
/*Array.prototype.indexOf = function...*/
var from = ~~arguments[1];到此這篇關(guān)于Javascript雙重否定運(yùn)算的具體使用的文章就介紹到這了,更多相關(guān)Javascript雙重否定運(yùn)算內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
用函數(shù)式編程技術(shù)編寫優(yōu)美的 JavaScript
用函數(shù)式編程技術(shù)編寫優(yōu)美的 JavaScript...2006-11-11
js實(shí)現(xiàn)Select列表各項(xiàng)上移和下移的方法
這篇文章主要介紹了js實(shí)現(xiàn)Select列表各項(xiàng)上移和下移的方法,涉及javascript動態(tài)操作頁面元素屬性值的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-08-08
關(guān)于JavaScript數(shù)組你所不知道的3件事
這篇文章主要為大家詳細(xì)介紹了關(guān)于JavaScript數(shù)組三個并不那么常見的功能,你所不知道的事情,感興趣的小伙伴們可以參考一下2016-08-08
BootStrap智能表單實(shí)戰(zhàn)系列(九)表單圖片上傳的支持
這篇文章主要介紹了BootStrap智能表單實(shí)戰(zhàn)系列(九)表單圖片上傳的支持,介紹如何在生成表單后,可以支持上傳圖片后可以及時預(yù)覽圖片的功能,需要的朋友可以參考下2016-06-06
javascript顯式類型轉(zhuǎn)換實(shí)例分析
這篇文章主要介紹了javascript顯式類型轉(zhuǎn)換,實(shí)例分析了javascript實(shí)現(xiàn)類型轉(zhuǎn)換的常用技巧,非常具有實(shí)用價值,需要的朋友可以參考下2015-04-04

