0%

JS核心(2)-執行環境與作用域-執行的錯誤情境 LHS, RHS

前言

JS執行時,會有一些與取值和賦值相關的常見錯誤,而LHS, RHS 這兩個名詞主要與取值及賦值有關

LHS

LHS 全名是 Left-Head Side:用來賦予值到左側的變數

舉個例子 var ming = '小明' 將 ‘小明’ 賦予到 ming 這個變數上

什麼時候會發生 LHS 錯誤呢?

當左邊並不是個變數時(例如字串賦予值),就會出現LHS error

舉個例子 '小明' = 1;

注意:這是屬於在直譯過程中就發生的錯誤,連token都解析不出來,但這段錯誤訊息也會出現在console中


RHS

RHS 全名是 Right-Head Side:指取值是來自右側的變數上

舉個例子:

var ming = '小明';  
console.log(ming);  

我們可以看到 console.log() 去取得右側的變數 ming,然後顯示在 devTools 上

再看一個例子:

var ming = '小明';  
var man = ming;  

從上面的例子來看,變數 ming 重新賦予到另一個變數 man 上,這也是屬於 RHS 的觀念,但是取得值賦予到左側的過程稱之為 LHS

什麼時候會發生 RHS 錯誤呢?

RHS 錯誤在轉譯過程中不會直接顯示 RHS 出錯,而只有在執行時才會被發現。
他只會出現類似「console: ‘Uncaught ReferenceError: min is not defined’」這種的錯誤訊息,因為變數尚未被定義

如果有遇到上面的任何錯誤,建議一定要修正,否則程式碼是無法正常運作的,因為 JavaScript 一旦遇到錯誤就無法往後執行