在js中宣告變數時用var和不用var有什麼區別,我查閱了很多的資料和書籍再加上我自己的理解來講述一下我自己的看法。
在函式內部宣告變數
在函式內部如果用var宣告變數和不用時有很大差別,用var宣告的是區域性變數,在函式外部訪問這個變數是訪問不到的,沒var宣告的是全域性變數。在函式外部是可以訪問到的。
function
ff()
ff();
console.log(a); //a is not defined
如果去掉var來宣告變數a:
function
ff()
ff();
console.log(a); //1
2.全域性作用域內宣告變數
在這裡用var宣告的變數我們之所以認為宣告的是全域性變數是因為它現在處於的作用域範圍是全域性,實際上它宣告也是區域性變數,只是現在它的區域性變數是全域性而已,所以就相當於起著全域性變數的作用。全域性作用域中不用var宣告的也是全域性變數,那麼它倆有什麼區別呢?
比較var a= 1 跟 a= 1,前者是變數宣告,帶不可刪除屬性,因此無法被刪除;後者為全域性變數的乙個屬性,因此可以從全域性變數中刪除
var num1 = 1;
num2 = 2;
console.log(num1);//1
console.log(num2);//2
delete num1; //無法刪除,會報錯
delete num2; //刪除
console.log(num2);//num2 is not defined
前者是變數宣告,帶不可刪除屬性,因此無法被刪除;後者為全域性變數的乙個屬性,因此可以從全域性變數中刪除。
「`
JS中用var宣告變數和不用var宣告變數的區別
閱前須知 作用域 分為全域性和區域性 函式會開闢自己的作用域 或 空間 或 過程級 變數宣告 變數在指令碼中的第一次出現是在宣告中。變數在第一次用到時就設定於記憶體中,便於後來在指令碼中引用。使用變數之前先進行宣告。可以使用 var 關鍵字來進行變數宣告。var count 單個宣告。var cou...
JavaScript中用var宣告變數有什麼意義
var的本質 var a 3 宣告乙個變數a並給它賦值3 a 3 並沒有宣告乙個新的變數,只是往它的外層尋找變數名為a的變數,並給它賦值3。假設外層都沒有宣告a,那麼會找到window上的變數a 接下來我們看幾個例子 1.t2 中的str沒有用var宣告,找到了它的外層t1 中的str 執行結果 2...
函式中宣告變數不用Var的情況
我們都知道函式中宣告變數不用var時這個變數會成為全域性變數,但是並不是函式一開始執行就會把它變為全域性變數,必須執行到這條語句。看一段 function f f error a is not defined 只有函式內部執行到a 3時,a才會成為全域性變數並且等於3,因為這個函式不可能執行到這句語...