在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ js 判斷一個數(shù)是否為正整數(shù)?

js 判斷一個數(shù)是否為正整數(shù)?

if ( ( ( number - 0 ) | 0 ) !== number - 0 ){ // 輸入購買數(shù)量是否為正整數(shù)

nextBtn.disabled = true;
nextBtn.innerHTML = '請輸入正確的購買數(shù)量';
return;

}
書上看到這樣的代碼 ( number - 0 ) | 0 ) !== number - 0
負數(shù) 或 0 還不是負數(shù)嗎?
是不是寫錯了

如果寫錯了 按這本書的寫法可以怎么寫呢?

請大佬幫忙!謝謝了

回答
編輯回答
無標題

~~number === number

2017年9月9日 14:45
編輯回答
葬愛

原回答: 只是為了判斷number為正整數(shù)嗎? number > 0 && Number.isInteger(number)

根據(jù)作者意圖做出解釋修正:

你這個判斷的關(guān)鍵在那個按位或操作符上,如果number是整數(shù)的話,比如 10, 那么 10 | 0 == 10, 但是 如果是小數(shù)的話,或出來的結(jié)果也是整數(shù) 10.1 | 0 == 10。同時有number - 0 操作,那么如果number == 'abc'這樣的字符串 number - 0 == NaN 這時候再按位與為 NaN | 0 == 0 就避免了報錯。

回到你的條件,如果number是整數(shù),那么條件不成立,也就不用提示用戶再輸入正確的數(shù)量,如果number是小數(shù),那么條件成立,提示用戶輸入正確的數(shù)量。這個條件不會判斷正負,只關(guān)心是不是整數(shù)。如果number 是 '123'這樣的字符串,條件不成立, 如果是 'abc' 這樣的字符串,條件成立。

結(jié)論: 書上沒寫錯。這個條件會在用戶輸入小數(shù),非數(shù)字的字符串時成立。

如果非要判斷>0的話,可以這樣寫

if ((( number - 0 ) | 0 ) !== (number - 0) && (( number - 0 ) | 0 ) <= 0)
2017年1月23日 02:38
編輯回答
純妹

正整數(shù),其實很簡單啊,只需要三步 if ,一,它不是非數(shù)字 isNaN ,二,它是整數(shù),用 取整處理后對比是否一樣等值,如果是則是整數(shù),否則非整數(shù),三,它不是負數(shù),即比 0 大。就是這樣了。當然,如果你要簡潔的寫法,可以研究找找。

2018年5月14日 00:35
編輯回答
薄荷糖

糾正2樓的答案:(1 | 0 = 1, 0 | 0 = 0, 1 | 1 = 1)

2017年3月28日 10:26