跟著 YDKJS 作者 Kyle Simpson 打造全新 JavaScript Mindset : 型別(type)

Ashe_Li
Ashe’s Note
Published in
2 min readNov 20, 2019
找不到好圖就亂畫 xDD

型別 是一個程式語言很重要的基石,
我們期待 “42”42 兩者表現會有不同,
前者我們期望他有字串的特性可以使用,
後者我們常用於數字運算的特性。

這也就是為什麼我們程式撰寫中,很重視基礎的型別和值。

而程式語言中,有兩種常見的特性:
1. 強型別語言
2. 弱型別語言

對於兩者的定義,各種地方都有不同的意見,
在此定義參考 Kyle Simpson ,

我們透過使用變數的時機,來決定是強/弱型別語言。

也就是說,如果一個變數,在宣告的時候指定型別
那麼,我們說他是一個「強型別語言」。

如果一個變數,宣告的時候不能(或不需要)指定型別,
那麼,我們說他是一個「弱型別語言」。

註:
這邊要小心幾個名詞:
1. 型別、值
2. 變數

這兩者是完全沒有關係的。
除非有透過實際程式行為,才有可能有關係。
如:
1. 宣告一個變數,給予初始值
2. 宣告一個有型別變數
3. 宣告一個有型別變數,並給予初始值

然而, 型別、值 是關係非常密切的,
如:
1.
“42” : 值為 “42”型別根據值的特性字串
2.
42 : 值為 42型別根據值的特性數字

至於 JavaScript 中的特性,可以參考我鐵人賽的文章或是 YDKJS 。

小結:

最基礎的部分總是很多人會忽略的部分,
因為這些基礎可能有學過「類似的」,
但正因為有類似的經驗,才會造成更多誤解或是錯誤,

期許讀者,若有機會(時間),
JavaScript 的基礎屬於 JavaScript ,不要 透過其他語言來學習 JavaScript 。

--

--