JavaScript中如何判斷一個變量是不是NaN异赫?

NaN(不是一個數字且數據類型為number椅挣,另外NaN != NaN)是執(zhí)行數學運算沒有成功,返回失敗的結果塔拳。但是這個結果仍然是數字類型鼠证。

var a = "str";

var b = 2;

var c = a/b;

console.log(isNaN(a));? ? // true

console.log(isNaN(b));? ? // false

console.log(isNaN(c));? ? // true

這個例子中,a的結果是true靠抑,b是false量九,c是true。對于isNaN來說,它是判斷一個值是不是NaN荠列,如果是則返回true类浪。但是a是一個字符串,用isNaN判斷這個變量a的時候還是會返回true肌似。所以判斷一個變量是否為NaN不能使用isNaN()這個方法费就,可以用以下方法判斷。

1.根據NaN的定義判斷

var a = "str";

var b = 2;

var c = a/b;

function isNaN(n) {

? ? if(typeof(n) === "number" && isNaN(n)) {

? ? ? ? return true;

? ? } else {

? ? ? ? return false;

? ? }

}

console.log(Number.isNaN(a));? // false

console.log(Number.isNaN(b));? // false

console.log(Number.isNaN(c));? // true

2.防止在老版本的瀏覽器不支持isNaN方法

var a = "str";

var b = 2;

var c = a/b;

if(!Number.isNaN) {

? ? Number.isNaN = function(n) {

? ? ? ? return( typeof(n) === "number" && window.isNaN(n));

? ? }

}

console.log(Number.isNaN(a));? // false

console.log(Number.isNaN(b));? // false

3.利用NaN是唯一一個不等于任何自身的特點

var a = "str";

var b = 2;

var c = a/b;

function isNaN(n) {

? ? if(n !== n) {

? ? ? ? return true;

? ? } else {

? ? ? ? return false;

? ? }

}

console.log(isNaN(a));? // false

console.log(isNaN(b));? // false

console.log(isNaN(c));? // true

4.利用ES6中提供的Object.is()方法

var a = "str";

var b = 2;

var c = a/b;

console.log(Object.is(a, NaN));? ? // false

console.log(Object.is(b, NaN));? ? // false

console.log(Object.is(c, NaN));? ? // true

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末川队,一起剝皮案震驚了整個濱河市力细,隨后出現的幾起案子,更是在濱河造成了極大的恐慌呼寸,老刑警劉巖艳汽,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異对雪,居然都是意外死亡河狐,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門瑟捣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來馋艺,“玉大人,你說我怎么就攤上這事迈套【桁簦” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵桑李,是天一觀的道長踱蛀。 經常有香客問我,道長贵白,這世上最難降的妖魔是什么率拒? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮禁荒,結果婚禮上猬膨,老公的妹妹穿的比我還像新娘。我一直安慰自己呛伴,他們只是感情好勃痴,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著热康,像睡著了一般沛申。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上褐隆,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天污它,我揣著相機與錄音,去河邊找鬼庶弃。 笑死衫贬,一個胖子當著我的面吹牛,可吹牛的內容都是我干的歇攻。 我是一名探鬼主播固惯,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼缴守!你這毒婦竟也來了葬毫?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤屡穗,失蹤者是張志新(化名)和其女友劉穎贴捡,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體村砂,經...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡烂斋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了础废。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汛骂。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖评腺,靈堂內的尸體忽然破棺而出帘瞭,到底是詐尸還是另有隱情,我是刑警寧澤蒿讥,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布蝶念,位于F島的核電站,受9級特大地震影響芋绸,放射性物質發(fā)生泄漏媒殉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一侥钳、第九天 我趴在偏房一處隱蔽的房頂上張望适袜。 院中可真熱鬧,春花似錦舷夺、人聲如沸苦酱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疫萤。三九已至,卻和暖如春敢伸,著一層夾襖步出監(jiān)牢的瞬間扯饶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留尾序,地道東北人钓丰。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像每币,于是被迫代替她去往敵國和親携丁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355