宣告變數在 JavaScript 中並不陌生,但執行環境與運行跟 function 作用域有相大的關係,下方有一個變數,
1 | var Name = "Tim"; |
再了解變數運行先知道下方小知識,
LHS、RHS
JavaScipt 中有分成 LHS 跟 RHS,用英文全名來看很容易理解:
- Left Hand Side(左手邊):將值賦予到左邊的變數。
- Right Hand Side(右手邊):取值來自於右側的變數。
LHS 的運作
1 | var Name; |
上方變數就是標準的 LHS,將值賦於到左邊的變數上,
但如果這樣寫,
'Tim'=1;
console
就會跳錯, Invalid left-hand side in assignment
,表示左邊不是變數所以沒辦法給予值。
LHS 在編譯的過程就已經確立。
RHS 的運作
1 | var man = Name; |
這裡就是標準的 RHS 的運作方式,變數 man
的值,取自於右邊的 Name
的值。另一個經典的 RHS 就是函式,最常見的就是 console.log(value);
這個例子。
需要注意是,RHS 是在運作時才會執行,當有錯誤提示的時候,務必要修正,不然後面的程式碼就不會運行。
結語
基本認識 LHS 跟 RHS,對於 debug 是很有幫助的。