0%

JS 核心觀念筆記 - 執行環境與作用域

core

宣告變數在 JavaScript 中並不陌生,但執行環境與運行跟 function 作用域有相大的關係,下方有一個變數,

1
var Name = "Tim";

再了解變數運行先知道下方小知識,

LHS、RHS

JavaScipt 中有分成 LHS 跟 RHS,用英文全名來看很容易理解:

  • Left Hand Side(左手邊):將值賦予到左邊的變數。
  • Right Hand Side(右手邊):取值來自於右側的變數。

LHS 的運作

1
2
3
var Name;
Name = "Tim";
console.log(Name); //Tim

上方變數就是標準的 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 是很有幫助的。