JavaScript的變數型別
承接上一篇筆記的內容,繼續介紹JS的其他基礎型別
1. number 數字
JavaScript只有一種數值型別,就是number。
表示不管它是整數 或 浮點數 其型別皆為 number。
ex:
1 | console.log(typeof(10)); // number |
另外,還有幾個特別的數字
a. Infinity (無限大)
Infinity 這個數值可以由正數除以0得到
b. -Infinity (負無限大)
-Infinity 這個數值可以由負數除以0得到
c. NaN (不是數值, Not a Number)
NaN 可以由 0除以0, Infinity/Infinity, -Infinity/-Infinity 以上這三種方法得到
注意~~NaN不屬於任何數字,包括它自己
要特別注意的是,NaN跟任何數字做運算的話,其結果都會為NaN,
也就是說NaN不等於任何數字,包括NaN自己。
ex:
1 | console.log(NaN === NaN); // false |
判斷一變數是否為NaN
若我們今天要判定一個變數是否為NaN的話,若直接使用if(x === NaN)
做比較的話,會不適當。
因為,NaN本身不屬於任何數字,包括不等於它自己,但是,它又是number型別。
而正因為NaN的這些特性,導致你直接用if(x === NaN)
的方式來做判定會不適當。
ex:
1 | let x = NaN; |
所以,會建議直接用isNaN(value) 函式直接做判斷。
ex:
1 | let x = NaN; |
null 與 undefined
在JavaScript中,null
型別只有一個值就是null,類似空值的設定。
而undefined
型別也只有一個值,也就是undefined。
ex:
1 | let a; |
以上面這個例子為例,當你沒有為變數a設值的話,其預設值是undefined。
而null是需要你明確指定給變數,其值才會是null,像變數b那樣。