⑴ javascript 中 null,NaN和undefined的區別總結
null 是指一個空白對象,即什麼都沒有、什麼都不存在
NaN是Not a Number(不是一個數字)的簡稱,即變數或表達式的值不是數字或可轉化為數字的其他值
undefined的意思就是未定義、未聲明,任何未經聲明的對象(如變數、函數等)都是undefined
⑵ Javascript 中 null,NaN和undefined的區別
undefined 是未定義的值和定義未賦值,一般出現在對象屬性不存在或聲明了變數但從未賦值時;
null 是一種特殊的 object,包含「無值」或「無對象」。換句話說,該變數沒有保存有效的數、字元串、boolean、數組或對象;
NaN 是一種特殊的 number,表示「非數字」(非數字的含義不僅僅是不是數字,也包括無理數和溢出數值)。
undefined 與 null 是值相等,但實際並不等(== 和 === 的區別);NaN 與任何值都不等,與自己也不想等。
⑶ js 為什麼undefined + 1的結果是NAN
NaN在javascript中表握迅示「非法賀滲數值」,但仍然是數值類型,typeof(a)返回number
undefined在javascript中表示「未定義」,將它強制轉換成數值會段拍此返回NaN,所以undefined + 1也會返回NaN。
⑷ JS數字類型之NaN及isNaN
什麼是NaN:
NaN 就是在發生類型強制轉換的時候會產生 NaN ,也就是把其他類型轉換成 Number 類型時,不能轉換而返回的結果。
幾種轉換為 Number 類型的方法及可能出現NaN情況:
第一種轉換函數:parseInt / parseFloat
console.log(parseInt(" 我是誰 ")); console.log((" 我是誰 "));
以上兩種轉換函數的結果就會返回 NaN 因為轉換的不是一個有效數字啊。
第二種強制轉換類型: Number()
console.log(Number("12px")); 返回 NaN 因為不是一個有效數字,後面有文字
第三種變數弱類型轉換:
var str = '012.345 '; var x = str - 0; console.log(x, typeof x); // 這就是正常的了
那在JS中不管是什麼都會有個類型,那 NaN 是個啥類型呢?
這里可以看到,NaN 的類型是 Number,那既然是 Number 類型,那我用它來比較是不是 數字類型 可不可以勒,那咱們就來看一下。
那這里怎麼返回的都是 false 呢? 並且自己連自己都不等於,NaN的英文翻譯是:Not a number (不是一個數字的縮寫),那居然你不是一個數字 比喻是A,我也不是一個數字 比喻是B,那麼 A == B 嘛?你會發現並不相等 返回 false。
那我想判斷一個 變數是不是數字類型,不能使用NaN方法,那就有了 isNaN 的出現,請看下方用法:
isNaN 返回值是 如果你是有效數字,就是返回false,這里為啥是false 請看上面 NaN 英文的翻譯 ,如果你返回的不是一個有效數字就是 true。
原理相當於是:
這里你會發現,判斷的時候通過Number進行了一波隱式轉換,才得到最終結果 false。
說到在項目中真實的用處,目前還沒有遇到,但是如果你了解這個方法,遇到相關處理數據需要判斷時,你就會想到它啦,以上就是本人對 NaN 及 isNaN 的相關介紹, 還有那句話:如有不對之處及不周之處請大佬們指出,也希望對一些人有所幫助,咱們下次再會!
⑸ javascript中NaN == NaN的返回值是
NaN是一個值類型,同是也是一個數值.意思是Not A Number,這個都知道是什麼意思.值比較特殊,特殊在於NaN是一個數字,是一個與任何數值都不相等的數字.
javascript:alert(typeof(NaN));可以完全證實,這是一個數字類型的值.也就是說NaN是當時轉換時一種出錯的策略,轉成一個誰也不認識的數字而已.從這個角度上理解它是一個數字,可以理解成數學中的無窮大或是無窮小.但與數學中一個理論是相悖的,我們常說,無窮大加1等於無窮大是錯誤的.正是無空大加1不等於無窮大,所以無窮大也不等於它自己本身.所以數值NaN連自身都不會相等的.
而在javascript中NaN既然作為一個無窮大,那麼它表示的就不再是一個值,而是一類值,所以有時可視NaN是一個類型.
正是這樣的邊緣問題,可以導致作如下測試是正確的:
javascript:alert(NaN+1);結果是無窮大.
但唯一的是NaN是一個不確定數,所以NaN不能等於NaN.
這好比是randomise中的random,random +1 還是一個不確定的數值,但random不會等於random一樣.兩者的區別在於random能生成一個確定數,但本身不確定.而NaN生成的就是一個不確定數.
⑹ javascript 中的isnan什麼意思
你好,isNaN就是判斷是否為一個數字。在檢測用戶輸入和參數檢測時很有用。
定義和用法
isNaN() 函數用於檢查其參數是否是非數字值。
語法
參數描述:
x 必需。要檢測的值。
返回值
如果 x 是特殊的非數字值 NaN(或者能被轉換為這樣的值),返回的值就是 true。如果 x 是其他值,則返回 false。
說明
isNaN() 函數可用於判斷其參數是否是 NaN,該值表示一個非法的數字(比如被 0 除後得到的結果)。
如果把 NaN 與任何值(包括其自身)相比得到的結果均是 false,所以要判斷某個值是否是 NaN,不能使用 == 或 === 運算符。正因為如此,isNaN() 函數是必需的。
提示和注釋
提示:isNaN() 函數通常用於檢測 parseFloat() 和 parseInt() 的結果,以判斷它們表示的是否是合法的數字。當然也可以用 isNaN() 函數來檢測算數錯誤,比如用 0 作除數的情況。
⑺ 在javascript中,nan, null和undefined的區別是什麼
NaN:保留值(不是數字)
null:未定義或空字元串
undefined:對象屬性不存在,或,聲明了變數但從未賦值。
NaN很少直接使用,而是用isNaN(numValue)的形式來進行判斷,如果numValue是數字,那麼返回false,反之,返回true(即NaN)
另外兩個很常見,就不用解釋了吧?