亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 Number.isNaN('abc') 結果為 false?

為什么 Number.isNaN('abc') 結果為 false?

慕姐8265434 2023-07-20 11:04:40
無法找到此問題的確切原因。我知道 isNaN 嘗試將值解析為數字,但是當我嘗試在“abc”上運行 Number.parseInt 或 Number.parseFloat 時,它給我“NaN”,但當我實際運行 isNaN 函數時,它給我“false”。我知道有更好的方法來檢查某物是否是數字,例如 Number.isFinite( ),但在這種情況下,我試圖了解 isNaN 是如何工作的。console.log(Number.parseInt('abc'));console.log(Number.parseFloat('abc'));console.log(Number.isNaN('abc'));
查看完整描述

2 回答

?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

NaN是一個特殊的數值。Number.isNaN驗證傳入的值是否等于NaN,因為“正?!北容^不起作用(NaN == NaN根據false定義)。

與其他一些方法不同,Number.isNaN不執行類型轉換。是一個字符串值,因此它不能是。'abc'NaN

該規范定義Number.isNaN為:

  1. 如果 Type(?number?) 不是 Number,則返回false。

  2. 如果數字NaN,則返回true。

  3. 否則,返回false.


請注意,還有全局isNaN函數,其行為有所不同:如果您給它一個不是數字類型的值,它會在進行檢查之前將其轉換為數字類型。這isNaN('abc')true因為如果您'abc'使用默認的字符串到數字轉換來轉換為數字,您會得到NaN;?而是Number.isNaN('abc')因為false它不進行這種轉換。


查看完整回答
反對 回復 2023-07-20
?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

這里沒有添加任何新內容。


只是想讓初學者更清楚一點。


isNaN(value)檢查值是否字面意思是“ NaN ”。


如果值為“ NaN ”,isNaN(value)則返回true。


如果value是其他任何內容(例如number、string、undefined、null、Infinity或其他任何內容),isNaN(value)則返回false。


//Examples that Return FALSE

//

console.log(20); // value is 20 - is NOT NaN

console.log(isNaN(20)); // false   


console.log('20'); // value is "20" - is NOT NaN

console.log(isNaN('20')); // false



console.log(23 / 0); // is Infinity - Is NOT NaN

console.log(isNaN(23 / 0)); // false



//Examples that Return TRUE

//


console.log(parseInt('X20')); // is NaN

console.log(isNaN(parseInt('X20'))); // true 


console.log(+'20X'); // is NaN

console.log(isNaN(+'20X')); // true 


console.log(Math.sqrt(-1)); // is NaN

console.log(isNaN(Math.sqrt(-1))); // true 


console.log(7 ** NaN); // is NaN

console.log(isNaN(7 ** NaN)); // true 


console.log(0 * Infinity); // is NaN

console.log(isNaN(0 * Infinity)); // true 


console.log('foo' / 30); // is NaN

console.log(isNaN('foo' / 30)); // true `

正如正確指出的,最好用來Number.isFinite(value)檢查value是否是數字。


查看完整回答
反對 回復 2023-07-20
  • 2 回答
  • 0 關注
  • 314 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號