型別
和值
是一個程式語言很重要的基石,
我們期待 “42”
、42
兩者表現會有不同,
前者我們期望他有字串
的特性可以使用,
後者我們常用於數字
運算的特性。
這也就是為什麼我們程式撰寫中,很重視基礎的型別和值。
而程式語言中,有兩種常見的特性:
1. 強型別語言
2. 弱型別語言
對於兩者的定義,各種地方都有不同的意見,
在此定義參考 Kyle Simpson ,
我們透過使用變數的時機,來決定是強/弱型別語言。
也就是說,如果一個變數,在宣告的時候指定型別
,
那麼,我們說他是一個「強型別語言」。
如果一個變數,宣告的時候不能(或不需要)
指定型別,
那麼,我們說他是一個「弱型別語言」。
註:
這邊要小心幾個名詞:
1. 型別、值
2. 變數
這兩者是完全沒有關係的。
除非有透過實際程式行為,才有可能有關係。
如:
1.宣告
一個變數
,給予初始值
2.宣告
一個有型別
的變數
3.宣告
一個有型別
的變數
,並給予初始值
然而, 型別、值 是關係非常密切的,
如:
1.“42” : 值為
“42” ,
型別根據值的特性為
字串
2.42 : 值為
42 ,
型別根據值的特性為
數字
至於 JavaScript 中的特性,可以參考我鐵人賽的文章或是 YDKJS 。
Primitive types 的各值詳解:
Day 4 : Value 才有型別,變數沒有 https://ithelp.ithome.com.tw/articles/10217877
typeof 運算子 判斷型別的講解:
day5: 初學者第一坑 — typeof 運算子, 詳解 undefined https://ithelp.ithome.com.tw/articles/10218815
JavaScript 特殊值講解:
day6 : 特殊值:undefined / undeclared / TDZ ? , NaN , 負數 0
https://ithelp.ithome.com.tw/articles/10218907
小結:
最基礎的部分總是很多人會忽略的部分,
因為這些基礎可能有學過「類似的」,
但正因為有類似的經驗,才會造成更多誤解或是錯誤,
期許讀者,若有機會(時間),
JavaScript 的基礎屬於 JavaScript ,不要 透過其他語言來學習 JavaScript 。
好文轉自作者 Ashe Li 《跟著 YDKJS 作者 Kyle Simpson 打造全新 JavaScript Mindset : 型別(type)》,
如果你喜歡他的文章,歡迎回到原文看更多: )