什麼是變數 ?
可以將變數想像成一個能夠裝東西的箱子,而這個箱子有一個名稱(如:box),裡面則有一些東西,而我們可以用幫箱子所取名的 box 來代指裡面儲存的東西。
變數型態
如果想查詢變數是什麼型態可以用 typeof + 變數
來查詢。
範例:
console.log(typeof 30),即得 number
Primitive
布林 boolean | 數字 number | 字串 string |
---|---|---|
true、false | 50 | "Hello"、'Hi' |
在 JavaScript 中,變數的 = 並不是指數學符號的 =,指的是賦值
var a = 0
a = a + 5 // 這句話可省略成:a + = 5
a = a - 5 // 這句話可省略成:a - = 5
a++(就是 a+=1),a-- 反之
注意,++ 放前面或放後面的意思是不同的
陣列(Array)
一個陣列裡面可以放很多性質相同的東西
var score = [50, 80, 30, 100]
// score = 陣列名稱
// [] = 陣列裡的物件
使用範例:
console.log(score[0]),即得 50
// 這裡的 [0] 是索引值,需特別注意陣列的索引值是從 0 開始
如果想找出陣列的長度可以使用 .length
物件(Object)
(待補)
需注意變數運算小陷阱
注意一:型態
注意二:浮點數誤差
電腦在儲存小數點時沒有辦法真的很精準,所以會導致運算結果有些許誤差,詳情可以看 這篇 介紹
範例:
var a = 0.1 + 0.2
console.log(a == 0.3)
-----
結果會顯示 false
為什麼是 false 呢?
我們把 a 拆解來看:
console.log(a)
-----
電腦會顯示 0.3000000004
// 會有奇妙的誤差
因此在使用小數點時需特別注意,或盡量減少使用小數點
== 與 ===
在提 == 和 === 前,先來這段程式碼:
var a = 10
console.log(a = 1)
以這段程式碼來說,程式解讀的順序會是
先跑 a = 1
再跑 console.log(a)
所以最後 console.log 會得到 1
那如果是這段程式碼:
var a = 10 == 10
console.log(a)
=> 得到 true
因為程式會先從右邊執行到左邊,10 == 10
為 true
,故 a = true
,但最好的方式還是自己用括弧框起來,如 var a = (10 == 10)
== 與 === 的差別
==
(一般相等)
會先將值轉換成同個型別再比較,用來寫程式容易有 bug。
===
(嚴格相等)
除了值以外,型態也一定要相同,否則會被視為不相等,強烈建議使用
=== 來寫程式就好。
console.log(0 == '0')
=> 得到 true
console.log(0 === '0')
=> 得到 false
console.log(0 == '')
=> 得到 true
console.log(0 === '')
=> 得到 false
(以上內容是我在 程式導師實驗計畫第四期 的學習紀錄,如有理解錯誤,歡迎糾正,謝謝:D)
資料來源:Lidemy