特殊數值

前幾篇已經瞭解了js中的數組、字符串和數字,js中還有一些比較特殊的值,好比Nan、null等,這些東西比較瑣碎,但仍是有必要了解一下下的啦。數組


1、null
有次提到過undefined和undeclared,前者表示已聲明但未賦值,後者表示未聲明,二者經常使用來表示空值。
null也表示空值,但它的意思是曾賦過值,但目前沒有值。code


2、NaN
NaN用英語來解釋就是‘not a number’,能夠將它理解爲‘無效值’,可是你會發現有個有趣的點,用typeof看看它的數值類型,以下:字符串

typeof NaN;    // 結果爲 "number"

可能你會說英文解釋不是說‘not a number’麼,其實這二者都沒錯,只是這個英文名字容易引發誤解而已啦,知道NaN的類型仍是‘number’就好。
NaN還有一個特殊點,它和自身不相等,是惟一一個非自反的值(什麼叫自反,x === x不成立,什麼叫非自反, x !== x 成立),那要如何判斷它是不是NaN呢,以下:string

NaN === NaN; // false
isNaN(NaN);  // true
isNaN('string'); // true  這又是爲何呢,由於isNaN(),它參數爲NaN,或不是數字,就會返回true
isNaN('');  // false 又一個有趣的結果,若是字符串爲空,或數組爲空,返回的倒是false

let a = NaN;
a !== NaN; // 因此推薦這種方式來驗證是不是NaN

typeof a === 'number' && isNaN(a); // 或是用這種方式進行驗證

js中的零值有兩個,一個是0(或是+0),另外一個是-0,會有這種狀況,是爲了防止符號位丟失,具體的我也不太清楚,平時沒怎麼用到,就沒怎麼深究,待之後再細細考究。
此篇就此結束。英文

相關文章
相關標籤/搜索