[精讚] [會員登入]
238

[Javascript] NaN是什麼?

javascript 的NaN和取得整數

此文完整連結 http://n.sfs.tw/11560

複製連結 [Javascript] NaN是什麼?@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2017-11-16 11:13:36 最後編修
2017-08-06 01:42:39 By 瘦河馬
 

Javascipt 裡面有一種型別在你轉成整數 parseInt或轉成浮點數 parseFloat時會出現:

var p= parseInt("abc32564");
alert(p);

結果:NaN

出現NaN這個型別代表輸出失敗,而NaN是什麼?

NaN代表的就是「Not a Number」 ,不是一個數字。要檢查是不是NaN可用函數 isNaN來檢查:

if(isNaN(p)){ alert("請輸入數值"); return false;}

NaN比對範例

基本上只要結果不是數值的就是NaN,但有一些「特別的」例外,例如空字串或真假(true/false)

isNaN == false,是數值

isNaN(123) //false
isNaN(-1.23) //false
isNaN(5-2) //false
isNaN(0) //false
isNaN(
\0x32) //false 十六進位
isNaN('123') //false
isNaN('') //false
isNaN(
null) //false
isNaN(true) //false

isNaN == true,不是數值

isNaN(Object()) //true 物件本身
isNaN(function(){return 1;}) //true 函數就算return 1,還是NaN
isNaN(xyz) //true var xyz; 宣告後沒賦值的變數,等同 undefined
isNaN("123abc") //true
isNaN(undefined) //true
isNaN('NaN') //true
isNaN(
NaN) //true
isNaN(0 / 0) //true
isNaN('Hello') //true
isNaN('2005/12/12') //true

ParseInt(ParseFloat)結果範例

console.log(parseInt(\x032)); // SyntaxError: illegal character
console.log(parseInt("123abc"));  //123
console.log(parseInt("abc12345"));  // NaN
console.log(parseInt("123.456")); //123
console.log(parseInt("123.456ab"));  //123
console.log(parseInt("abc123.456"));  // NaN
console.log(parseInt("abcd"));   // NaN
console.log(parseInt(".12345"));  // NaN
console.log(parseInt(""));  // NaN
console.log(parseInt(undefined));  // NaN
console.log(parseInt(null));  // NaN
console.log(parseInt(NaN));  // NaN
console.log(parseInt(false));  // NaN

補充

Select的選項option如果設定是disabled的話,傳出來的值也是NaN

參考資料

[1] https://www.w3schools.com/Jsref/jsref_isnan.asp


原文 2010-07-19 00:59:42

你可能感興趣的文章

[jQuery] checkbox 及 radio 設定值 jQuery 之 checkbox 及 radio 取值及設定值的方法

[Bootstrap] Datepicker使用/Bootstrap日期選日期選擇器的使用 Bootstrap日期選日期選擇器的使用

[Javascript] 偵錯方式 (火狐中的javascript偵錯) javascript 並不是很容易偵錯(debug)的語言,但那是以前,現在有很多瀏覽器支持很多的工具,此文以火狐為例談談偵錯...

[CKeditor4] 設定區塊樣式、段落格式、字型名稱及字型大小 CKeditor4中要自訂設定區塊樣式、段落格式、字型名稱及字型大小。

[CKeditor4] 修改調色盤 修改ckeditor預設的調色盤

[jQuery] 利用load()來達成ajax的寫法 jQuery中利用load()來達成ajax的寫法,也有人稱他是假的ajax,作法就是..

[jQuery] select 元件的取值及給值 html中的元件select,在jquery中要如何使用?

正則表達式:Email名稱防止連續輸入點(.)及下底線(_) Email的名稱中要允許特殊符號,但又不允許連續出現的正則表達式

[jQuery] textarea 的取值和給值 HTML 的 TEXTAREA 標籤若要用 jquery 取值,不能使用 .text() 或 .html() ,使用 .

Javascript/Jquery 建立、讀取、刪除cookie值 Javascript/Jquery 建立、讀取、刪除cookie值

我有話要說


限制:留言最高字數1000字,超過部分會被截掉。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

[MAC] 截取螢幕畫面的方法 截取螢幕畫面的方法,在MAC中叫作螢幕快照,英文是screenshot

[HP DL380G7] 生效啟動第3,4片網卡/開啟或關閉內建的網卡 HP DL380G7 預設第3,4片網卡裝完系統後找不到,難道是壞了?要怎麼辦?

[Freebsd] 使用 ADSL 撥接上網 Freebsd上要使用 ADSL 撥接上網,該如何設定?

一個邏輯的錯誤刪了全部檔案的經驗 今天本來想做一件很簡單的事,但卻足足浪費我多一倍的時間,再加上刪掉我全部的檔案,原因只是因為我自己的邏輯錯誤。

設計的工作絕不接受比價 拿買陽春麵的價格想買牛肉麵,寧願倒掉也不賣