函式與型別

陳述式與表達式

陳述式:用於執行指令的操作,最大的特徵是 不會回傳結果

陳述式舉例:
(1) block { … }
(2) if…else
(3) switch
(4) var let const
(5) for 迴圈等等

表達式:又稱為運算式,是任何一段可以透過 運算子 取得一個值 (會回傳結果) 的程式碼

運算式舉例:
(1) x = 1,使用「=」運算子將 1 的結果賦予給 x 的變數
(2) 3 + 4,「+」是運算子,雖然沒有指定變數,但是會回傳結果 7

函式陳述式

函式陳述式又稱為 具名函式,直接給予函式名稱而不是另外定義變數。

1
2
3
function fnName() {
...
}

函式表達式

函式表達式又稱為 匿名函式,先定義變數後,接著透過等號運算子將函式賦予給變數。

1
2
3
var fnName = function() {
...
}

原始型別與物件型別

物件型別

Object Array function
物件 陣列 函式

原始型別 分為以下幾種:

Boolean Null Undefined Number String BigInt Symbol
布林 為定義 數值 字串 整數數值 Symbol
  • NaN 的型別為 Number
  • BigInt 是一個內建的 物件,提供了表示大於 2 的 53 次方整數的功能
null 是原始型別之一,但 typeof null 卻得到 object,而非 null 這是一個 bug,可是若修正了這個 bug 則可能會導致很多網站壞掉,因此不修正
如果要判斷 typeof null 的話要注意結果為 object

如果變數是 not defined 尚未定義變數,那型別將會是 undefined

1
2
console.log(a) // a is not defined
console.log(typeof a) // undefined

當我們直接查看一個變數時,可以取用該變數型別可用的一些方法

1
2
var a = 'ming'
console.log(a.length)

而這些方法是透過 包裹物件 的方式套用到變數上,可以透過 建構式 的方式來查看

在宣告原始型別時,如果使用這種方式宣告變數,則會被轉型為 物件型別,在使用上要特別注意



參考資料