2020年10月27日 星期二

let const 寫 JavaScript 的習慣養成

        其實現在還有些情況為了相容性,會把寫好的 ES6 語法編譯回去 ES5 ,因此要了解新寫法

與舊寫法的區別實益在哪?在舊的 var 宣告法造成的雷有:

1. 提升:

var math = function () {

console.log( x );

var x = 10

}

console.log( x ) // undefined

由於 function 內有宣告,因此還是可以執行,但是實際上從上到下執行 console.log 的時候,x  還沒宣告,因此是 undefined 。

2. 全域變數:

var x = 1

var math = function (y) {

x = 10;

return x + y

};

console.log( math(3) ); // 13

console.log( x ) // 10

當 JavaScript 在 function 內找不到宣告時,就會一層一層往外找,所以最後就改了最外層的 x 。

    知道這些問題之後,其實只要養成良好的開發習慣不用 let 與 const 也無所謂,但就是加一層

保險, let 用於宣告一個「只作用在當前區塊的變數」,因此不會超出當前區塊; Const 有點像

使用 let 宣告的變數,具有區塊可視範圍。常數不能重複指定值,也不能重複宣告。


結論:為了避免變數遭到預期外的修改,變數都應該先宣告再做使用,並且盡量元件化各自

可以運作,而不是 a 去改 b 、 b 又改 c 造成難以維護與判斷更改數值的源頭。



參考資料:

MDN

008 天重新認識 JavaScript Kuro Hsu 著

沒有留言:

張貼留言