91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

for循序為什么要用let

發布時間:2022-03-01 11:02:15 來源:億速云 閱讀:121 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“for循序為什么要用let”,內容詳細,步驟清晰,細節處理妥當,希望這篇“for循序為什么要用let”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

因為 var 是在 js 語言設計者 Brendan Eich 設計的一種缺陷,這種缺陷不能更改,并且作者在十年前就提出了修復此缺陷.
在進行講解的時候,小伙伴們需要知道在 js 語言中,if 和 for 是沒有作用域的,只有 function 才擁有,var 是全局變量,let 是塊級作用域,const 是常量(不可改變的變量稱為常量);可以把 let 看做成更完美的 var

//ES5中使用for循環點擊事件 //bug:每次點擊都是最后一個點擊按鈕觸發點擊
for(var i=0;i<btns.length;i++){
btns[i].addEventListener('click',function(i){
console.log(`第${i}按鈕發生點擊`);
})
}
//es5中for循環使用var定義的,就相當于定義了一個全局的i,每次循環i++都可以進行改變i的值,
//var進行變量提升和代碼預解析后var是在全局最前面的,es5的解決方案是采用閉包進行解決;
//解決方案
for(var i=0;i<btns.length;i++){

( function(num){
btns[i].addEventListener('click',function(i){
console.log(`第${num}按鈕發生點擊`);
})
})(i);
}
//函數具有塊級作用域,把當前每次循環的i通過閉包的方式傳遞給點擊事件,因為是立即執行函數,所以每次傳遞進去執行
//后,在開始下一輪循環,直到最后點擊事件循環完畢,雖然是使用var定義的i,但是i在改變前點擊事件通過閉包的方式
//傳遞進去并執行,直接把當前的i定義在當前函數作用域內

 ES6循環

for(let i=0;i<btns.length;i++){
btns[i].addEventListener('click',function(i){
console.log(`第${num}按鈕發生點擊`);
})
}
//let具有塊級作用域的,每次循環時進去不會改變當前傳遞i的值,因為每次循環都是變量提升和代碼預解析
//都是把let提升到當前作用域的最前方

讀到這里,這篇“for循序為什么要用let”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

白城市| 兴海县| 阿鲁科尔沁旗| 武强县| 钟山县| 龙州县| 甘德县| 民乐县| 礼泉县| 龙川县| 辽阳市| 宜兰县| 宁化县| 吴堡县| 徐州市| 深水埗区| 缙云县| 曲周县| 东兴市| 年辖:市辖区| 措勤县| 白山市| 绥化市| 横峰县| 黄梅县| 洛阳市| 砀山县| 烟台市| 兖州市| 兴安盟| 芮城县| 牟定县| 新野县| 凤城市| 天柱县| 嘉荫县| 汽车| 武夷山市| 新民市| 武汉市| 五指山市|