這篇文章主要介紹了javascript中經(jīng)典面試題又安心===有哪些,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
成都創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)按需定制制作,是成都網(wǎng)站開發(fā)公司,為成都自拌料攪拌車提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計(jì)服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計(jì)、前端HTML5制作、后臺(tái)程序開發(fā)等。成都網(wǎng)站改版熱線:13518219792
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)的值)。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“javascript中經(jīng)典面試題又安心===有哪些”這篇文章對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!