摘要:一道筆試題第一次第二次第三次你以為這會輸出什么小心別跳入陷阱里。結果為秒后輸出秒后輸出為什么呢因為是全局變量,當循環執行結束后當然等于數組長度,所以三次結果都是第三次。
一道筆試題
var arr = ["第一次","第二次","第三次"]; for(var i=0;i你以為這會輸出什么?小心別跳入陷阱里。
結果為:undefined
10秒后輸出 undefined
20秒后輸出 undefined
為什么呢?因為i是全局變量,當for循環執行結束后,i當然等于數組長度,所以三次結果都是第三次。實際測試結果都是undefined,因為只有當i=3的時候才結束for循環,而arr[3]表示數組的第四個元素,實際arr數組里只有三個元素,所以arr[3]也就等于undefined
使用閉包的方式解決var arr = ["第一次","第二次","第三次"]; for(var i=0;i關于setTimeout執行流的問題,這里有一個栗子: console.log(1); setTimeout(function(){console.log(2);},0); console.log(3); setTimeout(function(){console.log(4);},0); console.log(5);執行結果
13524以上執行結果,可以分析到雖然setTimeout得時間設置為0,但setTimeout需要等代碼流執行結束后再來執行setTimeout函數塊
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/87658.html
摘要:大名鼎鼎的閉包面試必問。閉包的作用是什么。看到閉包在哪了嗎閉包到底是什么五年前,我也被這個問題困擾,于是去搜了并總結下來。關于閉包的謠言閉包會造成內存泄露錯。閉包里面的變量明明就是我們需要的變量,憑什么說是內存泄露這個謠言是如何來的因為。 本文為饑人谷講師方方原創文章,首發于 前端學習指南。 大名鼎鼎的閉包!面試必問。請用自己的話簡述 什么是「閉包」。 「閉包」的作用是什么。 首先...
摘要:完美的閉包,對,閉包就這么簡單。這僅僅是閉包的一部分,閉包利用函數作用域達到了訪問外層變量的目的。此時一個完整的閉包實現了,的垃圾回收機制由于閉包的存在無法銷毀變量。 1.閉包是指有權訪問另一個函數作用域中的變量的函數。 上面這段話來自 javascript 高級程序設計 第三版 P178 。作者說閉包是一個函數,它有訪問另一個函數作用域中的變量的能力。 2.函數訪問它被創建時所處的...
摘要:到底什么是閉包這個問題在面試是時候經常都會被問,很多小白一聽就懵逼了,不知道如何回答好。上面這么說閉包是一種特殊的對象。閉包的注意事項通常,函數的作用域及其所有變量都會在函數執行結束后被銷毀。從而使用閉包模塊化代碼,減少全局變量的污染。 閉包,有人說它是一種設計理念,有人說所有的函數都是閉包。到底什么是閉包?這個問題在面試是時候經常都會被問,很多小白一聽就懵逼了,不知道如何回答好。這個...
閱讀 1258·2021-11-19 09:40
閱讀 3117·2021-11-02 14:47
閱讀 3050·2021-10-11 10:58
閱讀 3216·2019-08-30 15:54
閱讀 2666·2019-08-30 12:50
閱讀 1721·2019-08-29 16:54
閱讀 462·2019-08-29 15:38
閱讀 1237·2019-08-29 15:19