javascript最新2020經(jīng)典面試題
let 和 var
(a): let 聲明的變量只在 let 命令所在的代碼塊內(nèi)有效
(b): let 是在代碼塊內(nèi)有效,var 是在全局范圍內(nèi)有效:
(c): let 不存在變量提升,var 會變量提升:
for (var i = 0; i < 10; i++) {
setTimeout(function(){
console.log(i);
})
}
// 輸出十個 10
for (let j = 0; j < 10; j++) {
setTimeout(function(){
console.log(j);
})
}
// 輸出 0123456789
解析:
變量 i 是用 var 聲明的,在全局范圍內(nèi)有效,所以全局中只有一個變量 i, 每次循環(huán)時,setTimeout 定時器里面的 i 指的是全局變量 i ,而循環(huán)里的十個 setTimeout 是在循環(huán)結(jié)束后才執(zhí)行,所以此時的 i 都是 10。
變量 j 是用 let 聲明的,當(dāng)前的 j 只在本輪循環(huán)中有效,每次循環(huán)的 j 其實都是一個新的變量,所以 setTimeout 定時器里面的 j 其實是不同的變量,即最后輸出 12345。(若每次循環(huán)的變量 j 都是重新聲明的,如何知道前一個循環(huán)的值?這是因為 JavaScript 引擎內(nèi)部會記住前一個循環(huán)的值)。
以上就是javascript最新2020經(jīng)典面試題的詳細(xì)內(nèi)容,更多關(guān)于javascript常見面試題請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
springboot?靜態(tài)方法中使用@Autowired注入方式
這篇文章主要介紹了springboot?靜態(tài)方法中使用@Autowired注入方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
Java使用BigDecimal進(jìn)行運算封裝的實際案例
今天小編就為大家分享一篇關(guān)于Java使用BigDecimal進(jìn)行運算封裝的實際案例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12
如何用Java結(jié)合經(jīng)緯度位置計算目標(biāo)點的日出日落時間詳解
這篇文章主詳細(xì)講解了如何基于目標(biāo)點的經(jīng)緯度計算日出日落時間,提供了在線API和Java庫兩種計算方法,并通過實際案例展示了其應(yīng)用,需要的朋友可以參考下2025-01-01
MyBatisPlus3如何向數(shù)據(jù)庫中存入List
本文主要介紹了Mybatis Plus的類型處理器的使用,通過User.java和UserMapper.xml示例進(jìn)行詳細(xì)的解析,并提供了JSON解析器的使用方法,希望通過這篇文章,可以幫助大家更好的理解和掌握Mybatis Plus的類型處理器2024-10-10
@Transactional跟@DS動態(tài)數(shù)據(jù)源注解沖突的解決
這篇文章主要介紹了@Transactional跟@DS動態(tài)數(shù)據(jù)源注解沖突的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09

