[英]Programmatically get values of variables local to function in javascript?
[英]Can JavaScript get confused between local variables?
如果我有一對函數,這兩個設置局部變量,例如,變量i
共同for
循環,一個恰巧,而其他正在運行叫,有沒有命名空間混亂的危險嗎?
請記住,JavaScript沒有塊范圍,只有函數范圍。
此外,如果您有嵌套循環,則以下示例中只有一個i
變量:
function myFunction() {
for (var i = 0; i < 10; i++) {
for (var i = 0; i < 10; i++) {
// code here will run 10 times instead of 100 times
}
}
// variable i is still accessible from here
}
Douglas Crockford建議var
語句應該是JavaScript編程語言的代碼約定中函數體中的第一個語句:
JavaScript沒有塊范圍,因此在塊中定義變量會使經驗豐富的程序員與其他C族語言混淆。 定義函數頂部的所有變量。
我認為他有一個觀點,正如您在下面的示例中所看到的,這不會讓讀者誤以為變量i
和j
保存在for
循環塊的范圍內:
function myFunction() {
var i, j; // the scope of the variables is now very clear
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
// code here will run 100 times
}
}
}
只要您使用var
,就像這樣:
for(var i = 0; i < something; i++)
然后它是本地的,你很好,如果你不使用var
,你手上有一個全局變量,以及潛在的問題。 此外,如果for
循環嵌套在另一個循環中,則應為每個循環使用不同的變量名稱。
如果你指的是嵌套循環,那將是一個問題。 每次進入第二個for循環時,i的值(先前在外部for循環中設置)將被重置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.