您好,登錄后才能下訂單哦!
這篇文章主要介紹了javascript中經典面試題又安心===有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
let 和 var
(a): let 聲明的變量只在 let 命令所在的代碼塊內有效
(b): let 是在代碼塊內有效,var 是在全局范圍內有效:
(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 聲明的,在全局范圍內有效,所以全局中只有一個變量 i, 每次循環時,setTimeout 定時器里面的 i 指的是全局變量 i ,而循環里的十個 setTimeout 是在循環結束后才執行,所以此時的 i 都是 10。
變量 j 是用 let 聲明的,當前的 j 只在本輪循環中有效,每次循環的 j 其實都是一個新的變量,所以 setTimeout 定時器里面的 j 其實是不同的變量,即最后輸出 12345。(若每次循環的變量 j 都是重新聲明的,如何知道前一個循環的值?這是因為 JavaScript 引擎內部會記住前一個循環的值)。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“javascript中經典面試題又安心===有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。