目的: javaScript 變數範圍
處理說明: 1> var
ECMAScript 2015 以前的 JavaScript 版本裡,並沒有定義區塊描述 (block statement) 的變數有效範圍。更精確的說,之前版本所定義的變數,其特性相當於全域變數;
不只在宣告的區塊或函數裡面有效 ,
不只在宣告的區塊或函數裡面有效 ,
其變數值還會超出宣告區塊而影響到全部的描述碼。
2>let
當使用了
let
這個區域變數宣告方式,變數 y 的有效範圍只有在 if { } 的範圍內,因此輸出結果是 ReferenceError。if (true)
{
var x = 5;
}
console.log(x); // x is 5
Ex:2: let
if (true)
if (true)
{
let y = 5;
}
console.log(y); // ReferenceError: y is not defined (y沒有被定義)
Ex3:
var myvar = "my value"; (function () {
console.log(myvar); // undefined , 不會產生錯誤訊息,但是欄位值未定義
var myvar = "local value";
})();
Ex4: ※區域變數會在執行之後自動銷毀,並同步釋放記憶
function fName(aName) {
var number = aName * 10; //區域變數
console.log(number); //驗證變數
}
fName(10); //帶入參數,執行函式
console.log(number) //--> 會Error
沒有留言:
張貼留言