資料型別的概念
- Javascript由左至右執行,順序不同會造成不同的結果。
e.g.
var x = 1 + 2 + "Booster"; 結果: 3Booster
var x = "Booster" + 1 + 2; 結果: Booster12
Javascript有動態型別的特性,所以才造成上方這種現象。
動態型別(dynamic types)
同一個變數可以用來存放不同型別的資料
Javascript的型別
- string
- number
- boolean
- array
- object
- undefined
- 在宣告變數的當下,沒有給定初始值,變數值和型別都是undefined e.g. var x;
- 可以指定變數為undefined,變數值和型別都會變undefined e.g. var x = undefined;
- null
- 表示不存在
- typeof null 的結果是 object,這是javascript的bug
- 可以用來清空object,型別仍然是object
e.g.
var x = {title:"test"};
x = null;
也可以用undefined清空,但是型別會變成undefined
- function
空值(empty value)
空值和undefined完全無關,空值的變數還是有值和型別。
e.g. var x = ""; x是空值,x的型別是string
typeof
可用來取得變數的型別
undefined和null的關係
- undefined的型別: undefined
- null的型別: null
- undefined和null的值相同
- undefined和null的型別不同
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
Primitive Data 和 Complex Data
Primitive Data包含
- string
- number
- boolean
- undefined
型別明確,沒有property或method。
Complex Data包含
- function
- object
array, object, null的型別都是"object",所以不要懷疑
在javascript中array是object
在javascript中null是object
function(){}的型別是function
沒有留言:
張貼留言