【JS幼幼班】Step.05 基本語法:基本型別(空值、boolean、number)


Posted by nancy543 on 2021-08-12

資料型別 Data type

所有的程式語言都具有「資料型別」和「資料結構」的設計。

  • 資料型別 Data Type:可簡稱型別(或型態),指的是一個變數,裡面儲存什麼類型的值。
  • 資料結構 Data Structure:把資料用結構組織起來,才可以做更有效的讀取。

在 JavaScript 中,分為兩大類資料型別。
基本型別 Primitive Type」:

  1. null (空值)
  2. undefined (未定義值)
  3. boolean (布林)
  4. number (數字)
  5. string (字串)
  6. symbol (符號) - ES6 新增

物件型別 Object Type」:

  1. object (物件):
    • function (函數)
    • array (陣列)
    • date (日期)
    • regExp (正規表達式)

知道資料的型別,才能知道屬於什麼類型,可以支援哪些操作。
簡單舉例:

a = 1 + 1

如果沒有給予值 1 型別的話,電腦就會無法辨識 a 的結果到底是要用數字相加( 1 + 1 等於 2 ),還是字串相加(文字 1 + 文字 1 等於文字 11 )。

型別特性

  • 型別是 JS 中最基本的單位。
  • 型別不可改變,但可以轉換。
  • 基本型別是一個值,沒有屬性,不屬於物件也沒有方法。
  • 其實只要記得哪些是基本型別就好了,因為剩下的就是物件型別
  • 必要時,JS 引擎會強制轉型為對應的物件型別 (除了 null 和 undefined 無法轉換)。

基本型別 1. 空值:

空值分為兩種,兩者都是特殊關鍵字keyword,但表示的意義不同:

  • null:表示變數「有定義」值,只是該值為空的,表示沒有結果的操作。
  • undefined:表示變數「沒有定義」值或「未指定」值,所以你無法使用。

一般來說,明確使用 null 表示空值比較好,因為若使用 undefined 表示空值,會被誤以為是忘了定義值。

曾經看過一個有趣的形容,可能讓新手們更容易了解其中的意義:

空字串 : 裝水的杯子今天沒裝水。
null : 沒有杯子。
undefined : 連是不是杯子都不知道。


基本型別 2. boolean (布林):

布林只有兩個值,表示邏輯上的「真」或「假」,在真假判斷式中,所有東西都可以轉換為布林值:

布林值 邏輯判斷 特殊值判定
true {}[]" "
false 0NaN''nullundefined

不過我們很少直接寫出 truefalse,而是會撰寫條件式來改變程式執行流程。

轉型 falsy、truthy

  • 可以用 Boolean(value) 去把值轉型為布林值。
  • 透過轉型得到 false 的,稱為 「falsy」值,而變成 true 的,則叫 「truthy」值。

只有以下這 8 個特殊值透過轉型就會變成 false,除此之外都是 true

  1. false
  2. 0
  3. -0
  4. NaN
  5. '' (單引號空字串)
  6. "" (雙引號空字串)
  7. null
  8. undefined

另外還有幾個特殊值要注意,它是屬於 true

  1. {} (空物件)
  2. [] (空陣列)
  3. " " (含空格的字串)

基本型別 3. number (數字):

JS 只有一種數字型別,就是 number 而已,不論是處理二進位、八進位甚至十六進位數字,都是一樣的方法。

特性:

  • 寫法不帶任何引號,加了引號會變字串。
  • 可以是任何位數的數值,包含數字、小數點、正負數符號、字元「e」(指數記法)。
  • 沒有所謂的整數,但可以用內建的 parseInt() 函式將字串轉為整數。
  • 不包含千分位的逗號。
  • 使用 64 bits 來儲存數值。
  • 支援數字運算子,包含+-*/%等算術。
  • 運算式以「先乘除後加減」為原則。
  • isNaN(): 函式,檢查是否是數值
  • isFinite(): 函式,檢查是否為有限數值
  • 除了常見的數字外,還有3種特殊的數字:
    1. Infinity:正無限大。
    2. -Infinity:負無限大。
    3. NaN:表示無效的數字(Not a number),雖然英文意思「不是數字」,但它依舊屬於 number 數字型別,所以 typeof NaN 的檢測結果會是 number
      • NaN 與任何數字作數學運算,結果都是 NaN
      • NaN 並不等於任何的數字,包含自己。

參考資料:


上一篇:【JS幼幼班】Step.04 基本語法:變數
下一篇:【JS幼幼班】Step.06 基本語法:基本型別(string、symbol)


#javascript #JS幼幼班 #learningJS #JS基本語法







Related Posts

圖型識別學習筆記:圖型識別介紹

圖型識別學習筆記:圖型識別介紹

[Py 百日馬 Day 5] for 迴圈 (for loop)

[Py 百日馬 Day 5] for 迴圈 (for loop)

十個幸運,讓「五彩繽芬」芬蘭主題分享會成真!

十個幸運,讓「五彩繽芬」芬蘭主題分享會成真!


Comments