国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JS按位非(~)運算符與~~運算符的理解分析

2019-11-20 23:44:16
字體:
供稿:網(wǎng)友
那么,對于typeof var!==”number”的類型來說,進行運算時,會嘗試轉(zhuǎn)化成32位整形數(shù)據(jù),如果無法轉(zhuǎn)換成整形數(shù)據(jù),就轉(zhuǎn)換為NaN;
JS在位運算上用了更簡便的一種方法來實現(xiàn)這中運算,那么它的實現(xiàn)原理大致上可以這樣理解:
復(fù)制代碼 代碼如下:

var testData=-2.9;
var testResult=(typeof testData==="number"&&!isNaN(testData)&&testData!==Infinity)?(testData>0)?-Math.floor(testData)-1:-Math.ceil(testData)-1:-1;

首先,如果一個數(shù)據(jù)在嘗試轉(zhuǎn)換為32整形數(shù)據(jù)時,結(jié)果<0,那么就需要對其上舍入,比如-2.9->-2,如果>0,對其下舍入,比如:2.6->2;
一個數(shù)據(jù)如果不能轉(zhuǎn)換為32位二進制表示,就轉(zhuǎn)換為NaN;繼而轉(zhuǎn)為-1;比如~{}/~NaN ==-1;
又比如~function(){return 100;}->-1;
在Jquery里面,有用到比如if(!~this.className.indexOf(str)){ //do some thing…..};這里,對于this.className.indexOf(str)的返回值,要么大于-1,要么就是等于-1;在其等于-1的時候,~-1===0;然后,!~-1===true;那么就可以得出this不包含str這個class名…;
對于~~運算符,同理,它也可以表示為:
復(fù)制代碼 代碼如下:

var testData=2.1;
var testResult=(typeof testData==="number"&&!isNaN(testData)&&testData!==Infinity)?(testData>0)?Math.floor(testData):Math.ceil(testData):0;

同樣采用上下舍入的方式來理解;
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宜昌市| 平舆县| 察雅县| 彭水| 岳阳市| 仪征市| 宜阳县| 绥芬河市| 湖南省| 凌源市| 新郑市| 元谋县| 如皋市| 桐梓县| 东光县| 军事| 客服| 务川| 孙吴县| 莲花县| 聊城市| 鄂尔多斯市| 襄樊市| 尼勒克县| 竹北市| 盱眙县| 当涂县| 上虞市| 固始县| 当雄县| 临湘市| 望城县| 九寨沟县| 疏附县| 密云县| 桃江县| 平泉县| 井研县| 长阳| 永胜县| 余干县|