2024年5月2日 星期四

javaScript 變數範圍 - var -let

 目的: javaScript 變數範圍

 處理說明:  1> var 

 ECMAScript 2015 以前的 JavaScript 版本裡,並沒有定義區塊描述 (block statement) 的變數有效範圍。更精確的說,之前版本所定義的變數,其特性相當於全域變數
 不只在宣告的區塊或函數裡面有效 ,
其變數值還會超出宣告區塊而影響到全部的描述碼。

                2>let
當使用了 let 這個區域變數宣告方式變數 y 的有效範圍只有在 if { } 的範圍內,因此輸出結果是 ReferenceError。



Ex1: var
        if (true) 
              { var x = 5; } 
        console.log(x);        // x is 5

Ex:2: let
         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

沒有留言:

張貼留言