Yu Ken Code

[JS]為何需要 JavaScript? JavaScript 的資料型別與資料結構

2021/9/19js1232 minutes

[JS]為何需要 JavaScript? JavaScript 的資料型別與資料結構

目錄

  • 為何需要 JavaScript?
  • JavaScript 的資料型別
  • JavaScript 的資料結構

當初學 JavaScript 最大的疑問就是,為什麼寫網頁用 JavaScript ? 雖然知道 JavaScript 能創造與使用者之間的互動,但還是很好奇整個運作方式,到底是怎麼讓使用者點擊一個按鈕會跳出一個視窗呢?

為何需要 JavaScript?

回到最早期,機器其實只看得懂 0 跟 1,所謂 0 跟 1 是一種二進位的表達方式,透過不同的排列去組合出不同的意思,就像是電影裡 SOS 求救信號是 10011111110011,也同樣是一種二進位代碼

那為什麼現在存在各種程式語言,像是 Python, JavaScript... 等等呢?不是說機器只看懂 0 跟 1 的二進位代碼嗎?

現實是,我們人類不可能去記得這麼多二進位代碼,假設我們要叫機器往右邊走,最好就是輸入

move right

而不是一堆二進位代碼

所以現在許多各式各樣的程式語言都是在幫我們做轉譯的動作,將直觀的語法轉成機器看得的懂的語言,那回到問題,為何需要 JavaScript?

JavaScript 讓我們跟機器溝通更輕鬆

順道一提,程式語言編譯的方式大致有分成兩種

  1. 直譯式
  2. 編譯式

這之後有機會會再寫一篇介紹他的差別,在這邊可以先不用理會

JavaScript 的資料型別

在講解資料型別之前,可能要先提一下資料在寫程式中所扮演的角色,一般在寫程式感覺是這樣的

走進便利商店;
如果看到沙士我就買;
不然我就買蘋果西打;

剛剛有說過所有的程式碼都會被轉譯成機器看得懂的語言,但問題來了,機器怎麼知道沙士跟蘋果西打是什麼東西?

這時候我們就需要先把沙士跟蘋果西打的描述先定義好(資料)存在一個變數裡面,而這個變數就變成裝資料的容器,這樣才能確保機器知道沙士跟蘋果西打是什麼,跟執行到後面的時候也不會忘記

那我們可能會有疑問,這些變數都是存在哪裡呢?

簡單來說就是存在電腦的記憶體裡面

回到原本的題目,JavaScript 資料型別就是針對我們存的這些變數去做一個分類,主要有以下幾種分類

  1. Boolean (布林值)
  2. Null
  3. Undefined
  4. Number(數字)
  5. BigInt
  6. String(字串)
  7. Symbol
  8. Object

一開始我們不需要刻意去記得這些型別,我們只要知道不同的變數有他各自的分類

而且在 JavaScript 當中,一個變數的型別是可以被改變的,我們稱這種語言為弱型別,

也就是我們一開始存數字型別的資料到一個變數裡,之後可以再把它轉成字串

JavaScript 的資料結構

剛剛有說到每一個資料我們都會把它存在變數裡,那這時候為了方便管理和操作,我們會把許多個變數放在一起,那要怎麼放呢?

在 JavaScript 中比較常用兩種容器來放

  1. Object 物件
  2. Array 陣列

還有其他種類型,不過這兩種為最常見的資料類型,也是許多程式語言都有的資料結構

物件和陣列不同點是

陣列有 index,存放進去的資料是有順序性的

物件沒有順序性,但存放進去的資料有名字

陣列會長得像以下這樣,其中資料一為 index 0,陣列的 index 都是從 0 開始

["資料一", "資料二", "資料三"];

物件會長得像以下這樣,每一筆資料都會有個名字,其中 Ken 這筆資料的名稱叫做 name

{
	name: "Ken",
	age: 28
}

陣列和物件都是把許多資料放在一起的容器,目的是為了方便操作和管理,具體的使用情境會在之後章節搭配實作去講解

tags:js-type-structure

date:2021/9/19