最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2011年07月31日 23:43:10   作者:  
按位非運算符,簡單的理解就是改變運算數(shù)的符號并減去1,當然,這是只是簡單的理解能轉(zhuǎn)換成number類型的數(shù)據(jù)
那么,對于typeof var!==”number”的類型來說,進行運算時,會嘗試轉(zhuǎn)化成32位整形數(shù)據(jù),如果無法轉(zhuǎn)換成整形數(shù)據(jù),就轉(zhuǎn)換為NaN;
JS在位運算上用了更簡便的一種方法來實現(xiàn)這中運算,那么它的實現(xiàn)原理大致上可以這樣理解:
復制代碼 代碼如下:

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名…;
對于~~運算符,同理,它也可以表示為:
復制代碼 代碼如下:

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

同樣采用上下舍入的方式來理解;

相關(guān)文章

最新評論

荆门市| 巴楚县| 都江堰市| 岳池县| 蓬安县| 红安县| 莲花县| 海兴县| 金川县| 突泉县| 永安市| 潞西市| 循化| 天台县| 大同县| 衡山县| 喀喇沁旗| 资溪县| 榆林市| 芜湖市| 寻甸| 镶黄旗| 周宁县| 雅安市| 托克托县| 通河县| 即墨市| 叶城县| 多伦县| 崇仁县| 汝南县| 兴隆县| 邻水| 微博| 章丘市| 道真| 辉南县| 广河县| 福泉市| 屯留县| 金沙县|