javascript最新2020經(jīng)典面試題
let 和 var
(a): let 聲明的變量只在 let 命令所在的代碼塊內(nèi)有效
(b): let 是在代碼塊內(nèi)有效,var 是在全局范圍內(nèi)有效:
(c): let 不存在變量提升,var 會(huì)變量提升:
for (var i = 0; i < 10; i++) {
setTimeout(function(){
console.log(i);
})
}
// 輸出十個(gè) 10
for (let j = 0; j < 10; j++) {
setTimeout(function(){
console.log(j);
})
}
// 輸出 0123456789
解析:
變量 i 是用 var 聲明的,在全局范圍內(nèi)有效,所以全局中只有一個(gè)變量 i, 每次循環(huán)時(shí),setTimeout 定時(shí)器里面的 i 指的是全局變量 i ,而循環(huán)里的十個(gè) setTimeout 是在循環(huán)結(jié)束后才執(zhí)行,所以此時(shí)的 i 都是 10。
變量 j 是用 let 聲明的,當(dāng)前的 j 只在本輪循環(huán)中有效,每次循環(huán)的 j 其實(shí)都是一個(gè)新的變量,所以 setTimeout 定時(shí)器里面的 j 其實(shí)是不同的變量,即最后輸出 12345。(若每次循環(huán)的變量 j 都是重新聲明的,如何知道前一個(gè)循環(huán)的值?這是因?yàn)?JavaScript 引擎內(nèi)部會(huì)記住前一個(gè)循環(huán)的值)。
以上就是javascript最新2020經(jīng)典面試題的詳細(xì)內(nèi)容,更多關(guān)于javascript常見面試題請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Spring IOC簡單理解及創(chuàng)建對(duì)象的方式
這篇文章主要介紹了Spring IOC簡單理解及創(chuàng)建對(duì)象的方式,本文通過兩種方式給大家介紹創(chuàng)建對(duì)象的方法,通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09
Java實(shí)現(xiàn)批量導(dǎo)出導(dǎo)入數(shù)據(jù)及附件文件zip包
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)批量導(dǎo)出導(dǎo)入數(shù)據(jù)及附件文件zip包的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一2022-09-09
Spring實(shí)現(xiàn)上拉刷新和下拉加載效果
這篇文章主要為大家詳細(xì)介紹了Spring實(shí)現(xiàn)上拉刷新和下拉加載效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
MyBatis-Plus中如何實(shí)現(xiàn)動(dòng)態(tài)表名
這篇文章主要介紹了MyBatis-Plus中如何實(shí)現(xiàn)動(dòng)態(tài)表名問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
Spring?AOP實(shí)現(xiàn)用戶登錄統(tǒng)一驗(yàn)證功能
這篇文章主要為大家詳細(xì)介紹了Spring?AOP如何實(shí)現(xiàn)用戶登錄統(tǒng)一驗(yàn)證功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)具有一定的借鑒價(jià)值,需要的可以參考一下2023-01-01
Java優(yōu)化for循環(huán)嵌套的高效率方法
這篇文章主要介紹了Java優(yōu)化for循環(huán)嵌套的高效率方法,幫助大家更好的提升java程序性能,感興趣的朋友可以了解下2020-09-09
Spring boot開發(fā)web應(yīng)用JPA過程解析
這篇文章主要介紹了Spring boot開發(fā)web應(yīng)用JPA過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09

