[JS]為何需要 JavaScript? JavaScript 的資料型別與資料結構
目錄
- 為何需要 JavaScript?
- JavaScript 的資料型別
- JavaScript 的資料結構
當初學 JavaScript 最大的疑問就是,為什麼寫網頁用 JavaScript ? 雖然知道 JavaScript 能創造與使用者之間的互動,但還是很好奇整個運作方式,到底是怎麼讓使用者點擊一個按鈕會跳出一個視窗呢?
為何需要 JavaScript?
回到最早期,機器其實只看得懂 0 跟 1,所謂 0 跟 1 是一種二進位的表達方式,透過不同的排列去組合出不同的意思,就像是電影裡 SOS 求救信號是 10011111110011,也同樣是一種二進位代碼
那為什麼現在存在各種程式語言,像是 Python, JavaScript... 等等呢?不是說機器只看懂 0 跟 1 的二進位代碼嗎?
現實是,我們人類不可能去記得這麼多二進位代碼,假設我們要叫機器往右邊走,最好就是輸入
move right
而不是一堆二進位代碼
所以現在許多各式各樣的程式語言都是在幫我們做轉譯的動作,將直觀的語法轉成機器看得的懂的語言,那回到問題,為何需要 JavaScript?
JavaScript 讓我們跟機器溝通更輕鬆
順道一提,程式語言編譯的方式大致有分成兩種
- 直譯式
- 編譯式
這之後有機會會再寫一篇介紹他的差別,在這邊可以先不用理會
JavaScript 的資料型別
在講解資料型別之前,可能要先提一下資料在寫程式中所扮演的角色,一般在寫程式感覺是這樣的
走進便利商店;
如果看到沙士我就買;
不然我就買蘋果西打;
剛剛有說過所有的程式碼都會被轉譯成機器看得懂的語言,但問題來了,機器怎麼知道沙士跟蘋果西打是什麼東西?
這時候我們就需要先把沙士跟蘋果西打的描述先定義好(資料)存在一個變數裡面,而這個變數就變成裝資料的容器,這樣才能確保機器知道沙士跟蘋果西打是什麼,跟執行到後面的時候也不會忘記
那我們可能會有疑問,這些變數都是存在哪裡呢?
簡單來說就是存在電腦的記憶體裡面
回到原本的題目,JavaScript 資料型別就是針對我們存的這些變數去做一個分類,主要有以下幾種分類
- Boolean (布林值)
- Null
- Undefined
- Number(數字)
- BigInt
- String(字串)
- Symbol
- Object
一開始我們不需要刻意去記得這些型別,我們只要知道不同的變數有他各自的分類
而且在 JavaScript 當中,一個變數的型別是可以被改變的,我們稱這種語言為弱型別,
也就是我們一開始存數字型別的資料到一個變數裡,之後可以再把它轉成字串
JavaScript 的資料結構
剛剛有說到每一個資料我們都會把它存在變數裡,那這時候為了方便管理和操作,我們會把許多個變數放在一起,那要怎麼放呢?
在 JavaScript 中比較常用兩種容器來放
- Object 物件
- Array 陣列
還有其他種類型,不過這兩種為最常見的資料類型,也是許多程式語言都有的資料結構
物件和陣列不同點是
陣列有 index,存放進去的資料是有順序性的
物件沒有順序性,但存放進去的資料有名字
陣列會長得像以下這樣,其中資料一為 index 0,陣列的 index 都是從 0 開始
["資料一", "資料二", "資料三"];
物件會長得像以下這樣,每一筆資料都會有個名字,其中 Ken 這筆資料的名稱叫做 name
{
name: "Ken",
age: 28
}
陣列和物件都是把許多資料放在一起的容器,目的是為了方便操作和管理,具體的使用情境會在之後章節搭配實作去講解
tags:js-type-structure
date:2021/9/19