JavaScript Data Type


JavaScript Data Type
在開始前 為了驗證型態 我們可以使用 typeof 函數驗證型態
var test = 0
console.log(typeof(test)) // number
JsvaScript 是 Dynamic typed language 意指動態型別語言
意思是 變數型態會依照給予的資料不同而自動轉換型別 並且在宣告時無需給予型態宣告
var test = 0
console.log(typeof(test)) // number
test = "string"
console.log(typeof(test)) // string

null 空值

空值表示參考了一個無效的物件

var testNull = null
console.log(testNull) // null

undefined 未定義

如果你宣告了一個變數但未指定任何物件或是數值 則為 undefined

var testuUndefined
console.log(testuUndefined) // undefined

boolean 布林

僅有 true, false 兩種狀態, 要注意的是 true and false 都必須是小寫

var testBool = true
console.log(testBool) // true
console.log(typeof(testBool)) // boolean

string 字串

JavaScript 字串可以由單引號或是雙引號組成, 字串連接用 + 連接

var testString = 'test'
console.log(testString) // test
console.log(typeof(testString)) // string
console.log(testString + "test3") // testtest2
取得 string 長度
var testString = "test"
console.log(testString.length) // 4
取得 string 字元
var testString = 'test'
console.log(testString.charAt(0)) // t
console.log(testString.[1]]) // e

number 數字

依照 ECMAScript 規範數字型別只有一種 可表達整數以及浮點數

var testNumber = 0
var testFloat = 3.14
console.log(testNumber)
console.log(testFloat)
console.log(typeof(testNumber)) // number
console.log(typeof(testFloat)) // number
console.log(Number.MAX_VALUE) // 1.7976931348623157e+308
console.log(Number.MIN_VALUE) // 5e-324
NaN

表示 Not a Number, 當計算錯誤得到此結果但 type 仍然是 number

var testNan = 0/0
console.log(testNan) // NaN
console.log(typeof(testNan)) // number
Infinity, -Infinity

表示 number 的正無窮大與負無窮大, type 仍然是 numbe

console.log(Number.MAX_VALUE + 1e+292); // Infinity
console.log(1/0) // Infinity
console.log(typeof(1/0)) // number
console.log(-Number.MAX_VALUE - 1e+292); // -Infinity
console.log(-1/0) // -Infinity
console.log(typeof(-1/0)) // number

type 與 new type

看完上述基本型態都不需要指定型態 例如
var b = true
console.log(b) // true
console.log(typeof(b)) // boolean
那我們也可以寫成
var b = Boolean(true)
console.log(b) // true
console.log(typeof(b)) // boolean
但如果加上 new 事情就有點不同了 型態會變成 object
var b = new Boolean(true)
console.log(b) // Boolean {true}
console.log(typeof(b)) // object
其餘基本型態加上 new 之後也有相同變化
console.log(typeof(Boolean(true))) // boolean
console.log(typeof(new Boolean(true))) // object
console.log(typeof(Number(123))) // number
console.log(typeof(new Number(123))) // object
console.log(typeof(String("str"))) // string
console.log(typeof(new String("str"))) // object

WRITTEN BY
Aki

熱愛寫code的開發者,專注於 Android 手機 Native App 開發,對於 IOS 也有涉略。閒暇之餘也學習 JavaScript 等前端框架