国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

JavaScript中判斷整數的多種方法總結_javascript技巧

來源:懂視網 責編:小采 時間:2020-11-27 21:28:27
文檔

JavaScript中判斷整數的多種方法總結_javascript技巧

JavaScript中判斷整數的多種方法總結_javascript技巧:之前記錄過JavaScript中判斷為數字類型的多種方式,這篇看看如何判斷為整數類型(Integer)。 JavaScript中不區分整數和浮點數,所有數字內部都采用64位浮點格式表示,和Java的double類型一樣。但實際操作中比如數組索引、位操作則是基于32位整數。 方式一
推薦度:
導讀JavaScript中判斷整數的多種方法總結_javascript技巧:之前記錄過JavaScript中判斷為數字類型的多種方式,這篇看看如何判斷為整數類型(Integer)。 JavaScript中不區分整數和浮點數,所有數字內部都采用64位浮點格式表示,和Java的double類型一樣。但實際操作中比如數組索引、位操作則是基于32位整數。 方式一

之前記錄過JavaScript中判斷為數字類型的多種方式,這篇看看如何判斷為整數類型(Integer)。

JavaScript中不區分整數和浮點數,所有數字內部都采用64位浮點格式表示,和Java的double類型一樣。但實際操作中比如數組索引、位操作則是基于32位整數。

方式一、使用取余運算符判斷

任何整數都會被1整除,即余數是0。利用這個規則來判斷是否是整數。

代碼如下:
function isInteger(obj) {
return obj%1 === 0
}
isInteger(3) // true
isInteger(3.3) // false  

以上輸出可以看出這個函數挺好用,但對于字符串和某些特殊值顯得力不從心

代碼如下:
isInteger('') // true
isInteger('3') // true
isInteger(true) // true
isInteger([]) // true

對于空字符串、字符串類型數字、布爾true、空數組都返回了true,真是難以接受。對這些類型的內部轉換細節感興趣的請參考:JavaScript中奇葩的假值

因此,需要先判斷下對象是否是數字,比如加一個typeof

代碼如下:
function isInteger(obj) {
return typeof obj === 'number' && obj%1 === 0
}
isInteger('') // false
isInteger('3') // false
isInteger(true) // false
isInteger([]) // false

嗯,這樣比較完美了。

二、使用Math.round、Math.ceil、Math.floor判斷

整數取整后還是等于自己。利用這個特性來判斷是否是整數,Math.floor示例,如下

代碼如下:
function isInteger(obj) {
return Math.floor(obj) === obj
}
isInteger(3) // true
isInteger(3.3) // false
isInteger('') // false
isInteger('3') // false
isInteger(true) // false
isInteger([]) // false

這個直接把字符串,true,[]屏蔽了,代碼量比上一個函數還少。

三、通過parseInt判斷

代碼如下:
function isInteger(obj) {
return parseInt(obj, 10) === obj
}
isInteger(3) // true
isInteger(3.3) // false
isInteger('') // false
isInteger('3') // false
isInteger(true) // false
isInteger([]) // false

很不錯,但也有一個缺點
代碼如下:
isInteger(1000000000000000000000) // false

竟然返回了false,沒天理啊。原因是parseInt在解析整數之前強迫將第一個參數解析成字符串。這種方法將數字轉換成整型不是一個好的選擇。

四、通過位運算判斷

代碼如下:
function isInteger(obj) {
return (obj | 0) === obj
}
isInteger(3) // true
isInteger(3.3) // false
isInteger('') // false
isInteger('3') // false
isInteger(true) // false
isInteger([]) // false

這個函數很不錯,效率還很高。但有個缺陷,上文提到過,位運算只能處理32位以內的數字,對于超過32位的無能為力,如

代碼如下:
isInteger(Math.pow(2, 32)) // 32位以上的數字返回false了

當然,多數時候我們不會用到那么大的數字。

五、ES6提供了Number.isInteger

代碼如下:
Number.isInteger(3) // true
Number.isInteger(3.1) // false
Number.isInteger('') // false
Number.isInteger('3') // false
Number.isInteger(true) // false
Number.isInteger([]) // false

目前,最新的Firefox和Chrome已經支持。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

JavaScript中判斷整數的多種方法總結_javascript技巧

JavaScript中判斷整數的多種方法總結_javascript技巧:之前記錄過JavaScript中判斷為數字類型的多種方式,這篇看看如何判斷為整數類型(Integer)。 JavaScript中不區分整數和浮點數,所有數字內部都采用64位浮點格式表示,和Java的double類型一樣。但實際操作中比如數組索引、位操作則是基于32位整數。 方式一
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产精品免费精品自在线观看 | 精品一区二区三区在线成人 | 日本天堂在线 | 综合伊人久久在一二三区 | 一区在线播放 | 一级久久| 国产高清在线精品一区二区三区 | 亚洲国产精品日韩一线满 | 欧美日韩极品 | 国产区亚洲区 | 日韩欧美一区二区在线 | 亚洲欧洲第一页 | 午夜视频免费在线观看 | 天天躁日日躁狠狠躁中文字幕老牛 | 精品国产综合成人亚洲区 | 久久精品亚洲欧美日韩久久 | 日本一区二区三区免费观看 | 福利一区福利二区 | 一道精品视频一区二区三区男同 | 亚洲一区二区综合 | 久久综合精品国产一区二区三区 | 亚洲一区二区三区四区在线观看 | 99精品高清视频一区二区 | 日韩欧美一区二区三区久久 | 国产午夜视频在线 | 欧美日韩成人高清色视频 | 久久久成人网 | 欧美色图亚洲自拍 | 亚洲视频在线视频 | 久久国产精品成人免费 | 欧美一级专区免费大片 | 国产aⅴ一区二区 | 国产一区二区在线视频 | 中文字幕亚洲精品 | 国产大片91精品免费观看不卡 | 日韩在线一区二区三区 | 日韩第三页 | 国产高清一区 | 久久国产精品视频 | 亚洲综合久久久 | 在线视频区 |