2019年1月28日 星期一

[Back To Basic] Javascript - 資料型別(data types)

資料型別的概念

  • 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

沒有留言:

張貼留言