1. 程式人生 > >jQuery的isNaN和isNumeric方法原始碼分析

jQuery的isNaN和isNumeric方法原始碼分析

jQuery1.7之前,是沒有isNumeric這個方法的,與此功能相仿的是!jQuery.isNaN(obj)

jQuery.isNaN這個方法從1.4X版本開始出現,是isXXX這一系列方法中並不起眼的小成員。

它的實現是對ECMA標準中的isNaN方法進行簡單包裝:

	jQuery.isNaN = function(obj){
		return obj == null || !rdigit.test(obj) || isNaN(obj);
	}; 
這裡值得注意的一個問題:
isNaN(null); // => false
這樣我們就不難理解jQuery為什麼要這麼處理了。

在那個“洪荒年代”,“上古大能”們留下的API無疑都是天材地寶。

然而,一切到了1.7版本,發生了翻天覆地的變化,jQuery.isNaN方法被廢棄了,取而代之的是isNumeric方法。

這樣貿然地丟掉一個API,顯然不利於穩定性。

isNumeric方法更像是反過來的isNaN

	jQuery.isNumeric = function(obj){
		return obj != null && rdigit.test(obj) && !isNaN(obj);
	}; 
當年的事已經無從考究。

我只能大膽地猜測,這是為了更語義化,讓開發者更方便地閱讀,寫出優雅的程式碼來。