JS變數前不加var的影響

2021-07-23 17:40:51 字數 566 閱讀 4127

再次強調下變數的作用域:(給小白看的)

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...