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