javascript 中,for 迴圈裡使用匿名函式好嗎?

時間 2021-05-05 18:05:20

1樓:James Dork

額,如果單純為了避免汙染命名空間,是不是可以把只在for中用到的變數存成乙個物件的屬性:

var loop = {};

for(loop.i = 0; loop.i < 100; loop.i++)

//或者存為for所在函式名的屬性

var a = function(){

for(a.i = 0; a.i < 100; a.iconsole.log(a.ia();

總之在迴圈裡宣告函式的寫法不推薦,盡量避免吧。

2樓:Mad Wiki

在用ES6以前,我遇到這樣的問題一般是在for迴圈外包一層匿名函式。為什麼一定要在迴圈體裡建立函式呢?

那時候也會遇到迴圈體裡需要用到臨時變數的問題,我會在for迴圈外定義變數,如果需要避免迴圈前後的值汙染可以在迴圈體內初始化賦值。

其實在迴圈體內置立匿名函式還是有疏漏,因為計數變數在函式外,還是有汙染的可能性。所以如果要建立匿名函式的話,建議在for迴圈外。

當然,現在ES6是最好的選擇,babel編譯器在你使用let後,遇到命名衝突會給你改變量名。先是加下劃線,再有衝突就加數字字尾。

javascript中object keys方法使用的問題(實操和書上寫的不相符)?

混混蛋 Object.keys obj 返回obj的自身 不包含原型鏈上的 的所以可列舉屬性的名字陣列 for in迴圈則包含原型鏈.for name in obj Object.getOwnPropertyNames obj 返回obj自身 不含原型鏈上的 的所有屬性名陣列,包括不可列舉的 想要獲...

javascript中Element nodeValue和innerHTML有什麼區別

DOM中的節點是分好幾種型別,常見的有 1.文件節點 document,唯一 2.元素節點 那些個標籤div,p之類 3.屬性節點 class,src這種 4.文字節點 插入在p,div內的文字 其它。其中element.nodeValue,是節點的值,其中屬性節點和文字節點是有值的,而元素節點沒有...

JavaScript中for和filter哪個效能更好?

bilibilili 首先你要先去看看 filter 是怎麼實現的。另外 for 迴圈裡面兩個優化點。看你這個判斷條件這麼簡單,沒必要在迴圈裡重新申請乙個變數了,另外不需要 break,直接 return 出去就完事兒了。另外說效能的話,除非你的陣列很長,子元素很大,一般情況來說,你感受不到效能區別...