再次強調下變數的作用域:(給小白看的)
js中變數作用域可分為:"全域性變數"和"區域性變數"
"全域性變數":宣告在函式之外的變數
"區域性變數":宣告在函式體中的變數,並且只能在當前函式體內訪問
但有一種情況,我們在定義變數時可能會忘記加變數名前面的 var 關鍵字。
這樣會發生什麼呢?
我們做下實驗,**如下:
function test()
test();
window.alert("a="+a);
window.alert("b="+b);
執行結果是遊覽器把函式內部的變數a彈出了a = 30,而同樣在函式內部的變數b卻沒有彈出。
結果表明:在js中,如果在函式內部定義變數時不加var,則判定為全域性變數,加上var則為正常的區域性變數。
即,在宣告變數時凡是沒有var關鍵字,而直接賦值的變數均為全域性變數。
注意:上述變數宣告時,不加var的用法不推薦使用,我們要盡量避免。(容易造成資料汙染)
js中定義變數加var和不加var的區別
這個問題其實我在面試的時候有被問到過,當時我記得我回答的很模糊,面試官看到我好像不太清楚,又問我是不是可以不加var定義變數。正好昨天做專案的時候想到這個問題,覺得這種細節上的問題才是拉開差距的。js中定義變數有兩種情況 注意在方法外不加var定義變數需對其進行賦值,否則出現xx is not de...
JS中變數定義加var和不加var的區別
1.在函式作用域內 加var定義的變數是區域性變數,不加var定義的就成了全域性變數。使用var定義 var a hello world function bb bb hello bill console.log a hello world 不使用var定義 var e hello world fu...
JS 變數帶var與不帶var的區別
1.看下列 帶var console.log a undefined 變數提公升 宣告時還未賦值 console.log window.a undefined 下面檢測結果中說明window下有這個屬性 但是沒有賦值 檢測a屬性是否在window物件中 console.log a in window...