iT邦幫忙

2022 iThome 鐵人賽

DAY 5
0
自我挑戰組

菜鳥的前端學習筆記系列 第 5

DAY5 - 資料型別

  • 分享至 

  • xImage
  •  

前言

今天聊聊JS中的資料型別有哪些還有如何判斷資料是什麼型別呢?最後談一下JS的強制型別轉換。


資料型別

資料型別(data type)主要是將資料分門別類,讓電腦能知道這筆資料是屬於什麼類型,當使用到不對的資料型別時,程式執行就會發生錯誤。ES6標準定義了7種資料型別:

  1. String 字串

    用於表示文字的資料型別,以單引號''或雙引號""包裹起來的內容,如'Hi’、'123’、'String’。

  2. Number 數字

    用於表示數字的資料型別,不需要引號直接輸入數字,在JS中,整數或小數都歸屬於數字,如123、3.14。

  3. Boolean 布林值

    只有兩種值,可以當作對或錯,表示方式為truefalse

  4. Object 物件

    用於多筆資料的結構,如陣列、物件及函式都屬於物件型別,運用kay-value pair來組合多筆資料,如
    { name: ‘Mike’, age: 30 }、[0, 1, 2, 3, 4]

  5. Null

    null在JS表示空值、不存在的物件,比較會用於判斷有沒有物件,如想抓取某個網頁元素,卻發現這個元素不存在時,便會收到回傳值null

  6. Underfined

    underfined表示你宣告了變數但沒有指派內容給它,這時輸出該變數便會得到underfined

  7. Symbol

    ES6新增的型別,代表獨特、不會重複的值,可以當作獨一無二的物件屬性名稱,進而防止屬性名稱產生衝突。


如何檢查資料型別?

typeof 語法,是用來檢查資料的型別,使用方法舉例如下:

const myName = 'Mike'
console.log(typeof myName)  // string

const myAge = 30
console.log(typeof myAge)  // number

const maritalStatus = false
console.log(typeof maritalStatus)  // boolean

const bmi = {
	height: 170,
    weight: 68,
}
console.log(typeof bmi)  // object

什麼是強制型別轉換?

由於JS會猜測我們想表達的意思是什麼(是個被聰明誤導的孩子),假如在執行時發現有不同的資料型別放在一起,它會嘗試以它的理解來給予我們執行結果,在實作時需要特別留意這件事情,否則很容易會得到不是我們想要的結果,舉例來說:

const englishScore = 60  // number
const mathScore = '70'  // string
// 假設希望將兩分數加起來得到總分130
// 但一個沒注意把數學分數輸錯型別..

// 將兩分數相加輸出之後得到的是6070...!!!?
console.log(englishScore + mathScore) 

從上面例子可以看到,因為兩個分數的資料型別不同,JS不會告訴你有錯誤,而是會乖巧的猜猜你在想什麼的輸出結果,這樣的結果很容易導致錯誤或失控,所以要特別小心這種意外狀況的發生。


上一篇
DAY4 - var, let 和 const
下一篇
DAY6 - 運算子
系列文
菜鳥的前端學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言