[英]javascript: creating a local scope of a global variable undefines it before it is set
我不了解這種行為:
var a = 1;
console.log('a is undefined1:', a == undefined);
var a;
//iterate selected jQuery elements:
jQuery.each(this, function(index, htmlElement) {
console.log('a is undefined2:', a == undefined);
var a;
返回值 :
a未定義1:否
a未定義2:true
如果最后一行(var a;)被注釋掉,則返回 :
a未定義1:否
a未定義2:否
我希望總是后者的輸出。 我不知道什么
非常感謝!
將var a
放在函數內部會創建一個范圍不同a
變量。
由於您沒有為其分配值,因此未定義。
當您注釋掉它時,您正在測試的值為1的外部a
。
變量被吊起。 在函數中的哪個位置使用var foo
都無關緊要,該函數的foo
仍然適用於整個函數。
使用var
在函數內聲明變量將使局部副本(新變量)具有整個函數的作用域-聲明之前是否使用該變量無關緊要。
不要在沒有var
情況下聲明變量。
如果要訪問golobal變量,並且具有相同名稱的局部變量,則可以使用window.foo
訪問全局foo
變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.