執行的錯誤情境 LHS, RHS

了解「LHS、RHS」會有助於在查看 JS 的錯誤時,更知道該如何去除錯

RHS(right-hand side)

  • RHS 取值來自於右側的變數上

LHS(left-hand side)

  • LHS 用來賦予值到左側的變數上

LHS 正確執行

🎃 LHS 用來賦予值到左側的變數上

例如,下方是正確的執行:

1
var ming = '小明'; // LHS:把'小明'賦予到「左側的變數 ming」上

LHS 的錯誤

🎃 當左側「不是一個變數」時,就沒有辦法被賦予值

例如:

當左側是一個「字串」,在 Console 就會顯示錯誤:「左側是無法被賦予值的」

1
'小明' = 1;

‼️ 這段錯誤,是屬於「編譯過程」中發生的錯誤因此,根本不會出現編譯的結果:(下方也會顯示出同樣的錯誤訊息)

RHS 正確執行

🎃 RHS 取值來自於右側的變數上

⭐️ 正確執行 範例一:宣告一個變數後,用 console.log 取出「右側變數」的值

1
2
3
var ming = '小明'; // LHS:把'小明'賦予到「左側的變數 ming」上

console.log(ming); // RHS:利用 console.log 取出「右側變數」的值

⭐️ 正確執行 範例二:宣告一個變數ming後,用「RHS」取出「右側變數ming的值」之後,再用「LHS」把「ming的值」賦予到「左側變數man」上–> var man = ming;

1
2
3
4
5
var ming = '小明'; // LHS:把'小明'賦予到「左側的變數 ming」上

var man = ming;

console.log(ming); // RHS

RHS 的錯誤

延續上面的範例,我把console.log的變數ming故意寫錯成「min

1
2
3
4
5
var ming = '小明'; // LHS:把'小明'賦予到「左側的變數 ming」上

var man = ming;

console.log(min); // RHS

‼️ RHS 不會在「編譯過程」中直接出現錯誤,而是在「執行階段」才會發現錯誤:「找不到此變數」

有錯誤,要立刻修正

注意!如果在 Console 有顯示錯誤,一定要立刻修正

因為,在 JavaScript 的執行過程中,如果有發生錯誤而沒有去修正,那麼後面的程式碼都不會被執行