0%

008重新認識JS-Day01-筆記2

JavaScript的變數型別

承接上一篇筆記的內容,繼續介紹JS的其他基礎型別

1. number 數字

JavaScript只有一種數值型別,就是number。
表示不管它是整數 或 浮點數 其型別皆為 number。
ex:

1
2
console.log(typeof(10));  // number
console.log(typeof(5.75)); // 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
2
let x = NaN;
console.log(x === NaN); // false

所以,會建議直接用isNaN(value) 函式直接做判斷。
ex:

1
2
3
4
5
6
7
let x = NaN;
console.log(isNaN(x)); // true

---使用isNaN的其他例子---
console.log(isNaN(123)); // false,因為,123是number型別
console.log(isNaN("123")); // false,因為,會先將字串"123"隱含地透過Number()轉成數字123
console.log(isNaN("NaN")); // true,會先將字串"NaN"會透過Number()轉成數字,但是,無法轉成數字,所以,為true

null 與 undefined

在JavaScript中,null型別只有一個值就是null,類似空值的設定。
undefined型別也只有一個值,也就是undefined。
ex:

1
2
3
4
let a;
let b = null;
console.log(a); // undefined
console.log(b); // null

以上面這個例子為例,當你沒有為變數a設值的話,其預設值是undefined。
而null是需要你明確指定給變數,其值才會是null,像變數b那樣。