函式與型別
陳述式與表達式
陳述式:用於執行指令的操作,最大的特徵是 不會回傳結果
陳述式舉例:
(1) block { … }
(2) if…else
(3) switch
(4) var let const
(5) for 迴圈等等
表達式:又稱為運算式,是任何一段可以透過 運算子 取得一個值 (會回傳結果) 的程式碼
運算式舉例:
(1) x = 1,使用「=」運算子將 1 的結果賦予給 x 的變數
(2) 3 + 4,「+」是運算子,雖然沒有指定變數,但是會回傳結果 7
函式陳述式
函式陳述式又稱為 具名函式,直接給予函式名稱而不是另外定義變數。
1 | function fnName() { |
函式表達式
函式表達式又稱為 匿名函式,先定義變數後,接著透過等號運算子將函式賦予給變數。
1 | 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
如果要判斷 typeof null 的話要注意結果為 object
如果變數是 not defined
尚未定義變數,那型別將會是 undefined
1 | console.log(a) // a is not defined |
當我們直接查看一個變數時,可以取用該變數型別可用的一些方法
1 | var a = 'ming' |
而這些方法是透過 包裹物件 的方式套用到變數上,可以透過 建構式 的方式來查看
在宣告原始型別時,如果使用這種方式宣告變數,則會被轉型為 物件型別,在使用上要特別注意