Johnson Mao

Day.13 「初步學習 JavaScript 基礎篇」 —— JavaScript 宣告變數 與 基本型別

JavaScript 宣告變數 與 基本型別

前面已經大略介紹了 HTML 和 CSS 的入門知識了,接著我們要來認識 JavaScript,來為我們的網頁添加更多邏輯互動。

#怎麼宣告變數?

JavaScript 是個弱型別語言,在宣告變數時,不像其他語言需要先指定型別那麼嚴謹,宣告的變數名會對應記憶體位子,把其存入記憶體中,之後要取出值,只要藉由變數名,就能找到對應的值。

宣告變數 存入記憶體中

要幫變數命名也是有規則的,首先保留字(如:class)與關鍵字(如:var),不能用於變數名,變數名不能由數字作為開頭,且變數名有大小寫之分,可以使用$_在名稱中。常見的命名法為駝峰命名法,如:petNamepet_name

目前宣告方式有 3 個(含 ES6)

什麼是 ES6? ES6 正式名稱為 ECMAScript 2015,是第版 ECMAScript,因此簡稱 ES6。 ES6 增加了原本 JavaScript 沒有的語法,能更加方便使用與維護,但有些瀏覽器兼容性可能不好(如:IE

何謂常數? 就像是圓周率 π 就是數學常數 3.14159,並不會隨意更改。

#變數的基本型別

JavaScript 的基本型別

#如何知道變數的型別?

可以使用 JavaScript 中用來判斷型別的運算符 typeof,使用方法如下

複製成功!
var a;
let n = null;

typeof "I'm Mao"; // string
typeof NaN;       // number
typeof true;      // boolean
typeof a;         // undefined
typeof n;         // object
typeof {};        // object
typeof [];        // object

欸~這時會發現奇怪的事情,null 給出的型別怎麼是 object 呢? 這其實是一開始 Javascript 設置實作時產生的 bug!

JavaScript 的值是由一個表示型別的標籤,與實際內容的所組成。 由於物件型別標籤是 0,而 null 代表的是空值(通常以 0x00 表示),導致物件與空值的標籤搞混,而產生的結果。 內容取自 008 天 重新認識 JavaScript

既然 JavaScript 已經不打算修復這個 bug 了(應該說一改會牽動到很多東西,就乾脆不改了),我們就 想像 null 是空物件吧,實際上並不是唷!

#如何分辨 NaN

這時會很困擾,會發現一般數字與 NaN 檢查型別都是回傳 number,要判斷數字型別是否為 NaN。 可以利用 JavaScript 提供的 isNaN() 來進行判斷!

複製成功!
let n = NaN;
console.log( isNaN(n) );  // true

#如何轉型別?

有的時候我們宣告變數使用var a = "1",那麼 a 是的型別是什麼? 聰明的你應該馬上就知道是字串(string)型別了吧! 那麼如果想要把 a 轉型成數字(number)型別,就可以使用轉換型別的語法,剛好來介紹一下轉換型別的語法吧!

轉換型別語法:

#總結

終於開始學習程式語言了,今天認識了基礎的宣告變數與型別判斷,蠻推薦 Kuro 大大寫的 008 天 重新認識 JavaScript,寫得十分有趣清楚,下一篇章先進入我們的運算符篇。

#參考資料

回首頁