當前位置:
首頁 > 最新 > 前端面試題:JS中的let和var的區別

前端面試題:JS中的let和var的區別

最近很多前端的朋友去面試被問到let和var的區別,其實阮一峰老師的ES6中已經很詳細介紹了let的用法和var的區別。我簡單總結一下,以便各位以後面試中使用。

ES6 新增了let命令,用來聲明局部變數。它的用法類似於var,但是所聲明的變數,只在let命令所在的代碼塊內有效,而且有暫時性死區的約束。

先看個var的常見變數提升的面試題目:

如果以上題目有理解困難的童鞋,請系統的看一下老馬的JS高級視頻(http://qtxh.ke.qq.com)


在ES6之前,我們都是用var來聲明變數,而且JS只有函數作用域和全局作用域,沒有塊級作用域,所以{}限定不了var聲明變數的訪問範圍。



let不允許在相同作用域內,重複聲明同一個變數。否則報錯:

Uncaught SyntaxError: Identifier "XXX" has already been declared

例如:

let a = 0;l

et a = "sss";

// Uncaught SyntaxError: Identifier "a" has already been declared

總結

ES6的let讓js真正擁有了塊級作用域,也是向這更安全更規範的路走,雖然加了很多約束,但是都是為了讓我們更安全的使用和寫代碼。

老馬目前專註於做線下的IT全棧實習,不8000就業不還實習費,如果有需要的請關注一下: aicoder.com


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 寒門老馬 的精彩文章:

TAG:寒門老馬 |