| 失效鏈接處理 |
|
ES6篇 場(chǎng)景題2024 PDF 下載
轉(zhuǎn)載自:http://java.python222.com/article/1780
相關(guān)截圖:
![]() 主要內(nèi)容:
1.解釋ES6引?的 let 和 const 與 var 的區(qū)別
ES6(ECMAScript 2015)引?了 let 和 const 這兩個(gè)新的關(guān)鍵字來(lái)聲明變量,與之前的 var 關(guān)鍵
字相?,它們提供了更嚴(yán)格的作?域規(guī)則和塊級(jí)作?域。以下是 let 、 const 與 var 之間的主要
區(qū)別:
1. 塊級(jí)作?域:
?
var 聲明的變量具有函數(shù)作?域或全局作?域,不具備塊級(jí)作?域(即?對(duì)花括號(hào) {} 內(nèi)
部)。
?
let 和 const 聲明的變量具有塊級(jí)作?域,這意味著它們只在其聲明的代碼塊內(nèi)可?。
2. 變量提升(Hoisting):
?
使? var 聲明的變量存在變量提升(hoisting)現(xiàn)象,即變量聲明會(huì)被提升到其所在作?域的
頂部。但變量的賦值仍然保留在原來(lái)的位置。
?
let 和 const 聲明的變量不存在變量提升,這意味著在聲明之前訪問(wèn)這些變量會(huì)拋出
ReferenceError 。
3. 暫時(shí)性死區(qū)(Temporal Dead Zone, TDZ):
?
在 let 或 const 聲明的變量被初始化之前的區(qū)域被稱(chēng)為暫時(shí)性死區(qū)。嘗試在暫時(shí)性死區(qū)內(nèi)訪
問(wèn)這些變量會(huì)拋出 ReferenceError 。
4. 重新聲明:
?
使? var 可以在同?作?域內(nèi)多次聲明同?個(gè)變量,?不會(huì)報(bào)錯(cuò),但這樣做會(huì)導(dǎo)致混淆和不可
預(yù)期的結(jié)果。
?
let 和 const 不允許在同?作?域內(nèi)重復(fù)聲明同?個(gè)變量,否則會(huì)拋出 SyntaxError 。
5. 常量聲明:
?
var 和 let 都可以聲明可變的變量。
?
const ?于聲明?個(gè)常量,其值在初始化后不能被重新賦值。但需要注意的是, const 聲明
的變量指向的內(nèi)存地址是不可變的,但如果該變量引?的是?個(gè)對(duì)象或數(shù)組,對(duì)象或數(shù)組內(nèi)部
的值是可以改變的。
6. 全局作?域中的聲明:
?
在全局作?域中使? var 聲明的變量會(huì)成為全局對(duì)象的屬性(在瀏覽器中是 window 對(duì)
象)。?
使? let 和 const 在全局作?域中聲明的變量不會(huì)成為全局對(duì)象的屬性,它們只存在于全局
作?域中。
通過(guò)引? let 和 const ,ES6為JavaScript提供了更清晰的作?域規(guī)則和更安全的變量聲明?式,
有助于減少因變量提升和全局變量污染導(dǎo)致的錯(cuò)誤。
|




蘇公網(wǎng)安備 32061202001004號(hào)


