在 Day01 的文章中有提到,
JavaScript 會先經過語法解析後,產生結構樹,代碼生成後才會運行
但在某些情況下,這些流程會產生錯誤
範例:
字串少寫一個單引號,會出現語法錯誤
console.log()
少一個括號分號,會顯示結尾錯誤
了解以上所產生的錯誤後,
接下來即將開始介紹 JavaScript 常見的錯誤中,取值與賦予值的關係
範例:
當使用函式取得值時,即為 RHS
下方範例是使用 console.log()
取得變數的值時,就能稱為 RHS,因為變數取得的值都在等號右邊
當使用變數來賦予變數值時,也使用到 RHS
下方範例是將 ming
這個變數賦予到 man
這個變數中,
會先從 ming
取值出來,再將值賦予到 man
中
所以整體過程為先執行 RHS,在執行 LHS
錯誤範例:
RHS 會在執行階段時發生錯誤,因此在編譯網站看不到錯誤
會出現 ReferenceError: min is not defined
該錯誤表示 min
這個變數沒有被定義,因此找不到他的值
範例:
將值從等號右側賦予到等號左側時,就能稱為 LHS,
將 '小明'
這個值賦予到 ming
這個變數中,此過程即為 LHS
錯誤範例:
如果賦予值到字串中的話,此時在編譯的過程就會出錯,
所以當看到 LHS 的錯誤時,要注意是否等號左邊的變數無法被賦予值
當遇到這些錯誤時,應該要立即修正,
在 JavaScript 的執行過程中,如果有遇到錯誤沒有修正的話,
在錯誤後面的程式碼都不會運行
下方範例中最後一行的 1
並沒有顯示出來
今天就到此為止,明天說明 JavaScript 語法作用域的部分