2015-05-28 64 views
-1

我在JavaScript中很新,我對如何正確聲明變量有以下懷疑。如何正確地在JavaScript中聲明一個變量?

那麼,這個變量聲明之間存在一些差異:

my_pkcoda = document.getElementById('pkcodaSelected').value; 

my_pkcoda變量之前沒有宣佈進入代碼在此聲明,第一次和值,所分配給它)

和:

var my_pkcoda = document.getElementById('pkcodaSelected').value; 

或者有沒有區別?

+1

的主要區別是變量將生活在範圍看到這個答案:在第一個例子,它可能會在全球範圍內,而在第二個它將生活在當前的函數範圍內(如果您沒有使用任何函數,它可能與全局範圍相同)。 – Sirko

+1

[聲明無var關鍵字的變量]的可能重複(http://stackoverflow.com/questions/6888570/declaring-variables-without-var-keyword) – CodingIntrigue

+1

你應該在這裏得到你的迴應:http://stackoverflow.com/問題/ 2485423/is-using-var-to-declare-variables-optional – lucasgehin

回答

1

正確的方法是在希望變量存在的範圍內聲明變量var

JavaScript在非嚴格模式下會原諒您不使用var關鍵字。但是,它將通過範圍鏈向上搜索變量的聲明,直到它遇到全局範圍,如果找不到該變量,則聲明該變量。

myGlobal = 1; // Auto-declared in global scope 
var myOtherGlobal = 2; // User-declared in global scope 

function myGlobalFunc() { 
    myLocallyInitedButGlobal = 3; // Auto-declared in global scope 
    var myLocal = 4; // User-declared in local scope 
} 

console.log(myGlobal); // Output: 1 
console.log(myOtherGlobal); // Output: 2 
console.log(myLocallyInitedButGlobal); // Output: 3 
console.log(myLocal); // Output: undefined 

了更詳細的解釋https://stackoverflow.com/a/1470494/883303