JavaScript isFinite()

admin發表於2018-10-16

finite翻譯成漢語是有限的或者有窮的意思。

那麼isFinite就有判斷是否是有限或者是否有窮的意思。

恰如其名,isFinite方法可以判斷引數是否是有窮的(非無窮大)。

更多全域性物件可以參閱JavaScript Global 物件一章節。

特別說明:ES2015對此方法做了部分修改,具體如下:

(1).方法不在屬於全域性物件,改為屬於Number物件。

(2).ES2015之前,引數可以是非數字,此種情況下會嘗試將非數字轉換為數字,然後再進行判斷,但是ES2015之後,如果方法引數為非數字,一律返回false,不再嘗試進行轉換。

具體可以參閱Number.isFinite()方法一章節。

語法結構:

[JavaScript] 純文字檢視 複製程式碼
isFinite(value)

引數解析:

(1).value:必需,判斷此引數是否是有窮的。

返回值規則如下:

(1).如果數字是有窮的,那麼方法返回true,否則返回false。

(2).如果引數可以轉換為有窮數字,那麼方法返回值為true,否則返回false。

(3).如果引數是非數字,那麼方法返回false。

(4).如果引數是正無窮或者負無窮,方法返回false。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
console.log(isFinite(50));

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201810/16/140049sk7z662yimgl6wki.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

很明顯50是有窮的,所以此方法的返回值為true。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
console.log(isFinite("100"));

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201810/16/140123xe4lp3lei37xpmze.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

isFinite方法首先嚐試將引數轉換為數字,然後再判斷是否是有窮的。

所以上述程式碼首先將字串"100"轉換為數字100,再進行判斷,列印結果為true。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
console.log(isFinite("螞蟻部落"));

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201810/16/140152faayyl9y41hli6sy.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

字串"螞蟻部落"無法轉換為數字,所以方法返回值為false。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let date=new Date();
console.log(isFinite(date));

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201810/16/140236gwlgbwkg0pxlpg5a.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

首先會嘗試將date物件轉換為數字,date轉換為數字是對應的時間戳。

時間戳再大也是有窮的,所以方法的返回值為true。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
console.log(isFinite(Infinity));
console.log(isFinite(-Infinity));

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201810/16/140512mhdmxqteyh6d3qkh.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

對於正無窮和負無窮,此方法返回值為false。

相關文章