一開始進入 JavaScript 不免俗的要知道其型別。
分為兩種 基本型別值(Primitive)物件型別(object)

基本型別值

基本型別值有六種: stringnumberbooleannullundefinedsymbol

string
字串是由許多字元組成,用來標示文字。

number
JS 使用的是 IEEE 754 標準的 雙精度浮點數
值得注意的是,浮點數運算存在著一些問題,最著名的就是 0.1 + 0.2 === 0.3 會得到 false
在 ES6 後我們會使用下面這個方式來驗證兩數是否相等

1
2
3
4
5
6
const a = 0.1 + 0.2
const b = 0.3
function numberCloseEnoughToEqual(n1, n2) {
return Math.abs(n1 - n2) < Number.EPSILON
}
console.log(numberCloseEnoughToEqual(a, b)) //true

即是兩數的誤差在 容許值 範圍內

值得注意的是
NaN 雖然也屬於 number ,但是 NaN 代表的卻是無效的數字

boolean
只有兩種值, truefalse
值得注意的是有一些值在比較的時候會被強制轉型為 false ,稱之為 falsy
""NaN0nullundefined,其餘為 truthy 。

null
null 用來標示空值,預留一個空位給變數。在 JS 中, 一個宣告未給值的變數,會是 undefined,而不是 null

undefined
用來標示未定義,一個變數已經宣告,沒給值就會是 undefined

symbol
ES6 新增,目前還沒有實際使用過,無法很明確的描述其用途。

object(物件型別)

不屬於上述基本型別值的就屬於物件型別

reference

You Don’t know JS: Up & Going, types & Grammar