在JavaScript中使用let和var有什麼區別?

什麼時候應該使用let over var?又為什麼呢?讓我們找出答案!

在現代JavaScript中,我們有3種方法來聲明變量並為其分配值:

  • const
  • let
  • var

在JavaScript中使用變量時,我始終默認使用const。它確保不能重新分配該值,因此使用起來更安全。

但是當我以後需要重新聲明變量時,我總是使用let

我沒用過var多年以來,對我來說,它只是為了向後兼容的目的而存在,當我看到它使用時,我總是會大為驚訝。

為什麼?

第一的,let明智的範圍

或多或少地在所有流行的編程語言中使用相同的作用域,即塊作用域,指示使用以下命令聲明的變量let範圍最接近的塊。

var相反,它有點怪異,因為它具有函數作用域,這意味著使用var範圍是最接近的函數。

這具有實際意義。例如,變量在if或用作for循環迭代器。使用let使它在那兩個街區本地。使用var但是,允許該變量在該塊之外可用,這可能會導致錯誤。

始終使用功率最小的工具,以確保對其具有最大的控制權。擁有權利的同時也被賦予了重大的責任

喜歡的另一個原因let吊裝。喜歡constlet變量不會被吊起,但是在評估時會被初始化。

var而是將變量提升到函數的頂部,因此即使在各行中也可以使用它們他們的聲明。很奇怪,對不對?

第三個原因:當您聲明一個let與已經存在的同名變量,您會收到一條錯誤消息(在嚴格模式)。

最後,另一個很大的不同:如果您聲明一個var任何函數之外的變量,它都被分配給全局對象, 意思是window在瀏覽器中。let不能以這種方式工作;該變量可用,但未附加到全局對象,因此無法從文件外部訪問。

免費下載我的JavaScript初學者手冊


更多js教程: