溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何在JS中使用let和const方法

發(fā)布時間:2020-11-09 16:38:21 來源:億速云 閱讀:270 作者:Leah 欄目:開發(fā)技術(shù)

本篇文章為大家展示了如何在JS中使用let和const方法,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

正文

ES6中的 let 和 const 都是用來聲明變量的, 他們與 var 有所區(qū)別

let 命令

我們都知道在for循環(huán)中,我們命名的變量 i 一般都只是為了在這個循環(huán)中使用,才臨時命名的, 我們希望循環(huán)結(jié)束后,這個變量就消失, 但是卻相反,用 var 命名的變量,在 for 循環(huán)結(jié)束后并不會銷毀,而會存在于全局中。

for(var i=0; i<5; i++) {
	console.log('循環(huán)'+ i)
}
console.log(i)

/* 輸出結(jié)果  */
循環(huán)1
循環(huán)2
循環(huán)3
循環(huán)4
5           // 這里是循環(huán)外輸出的i

但是如果我們在 for 循環(huán)中,用到 let 去命名變量會怎么樣呢?

for(let i=0; i<5; i++) {
	console.log('循環(huán)'+ i)
}
console.log(i)

/* 輸出結(jié)果  */
循環(huán)1
循環(huán)2
循環(huán)3
循環(huán)4
undefined           // 這里是循環(huán)外輸出的i,顯示未定義

這樣的話就解決了因為 var 命名導(dǎo)致的變量泄露的問題了, 其實它的本質(zhì)就是作用域, let 只作用于他自身所在的代碼塊內(nèi),而 var 是針對全局都有效的。例如這一個簡單的例子:

{
	let i = 1
	var n = 2
}
console.log(i)
console.log(n)

/* 輸出結(jié)果 */
undefined
2

可以看到, let 命名的變量只存在于那個代碼塊內(nèi),到外部就訪問不到了,而 var 就是針對全局命名的。

const 命令

const 和 let 類似,也是命名的變量只能在它所在的代碼塊內(nèi)能被訪問得到,到外部就無法被訪問到,但是 const 與 let 的區(qū)別就在于, const 命名的變量是一個只讀變量,簡而言之就是命名了就無法在后面被修改,例如這個例子:

const a = 'apple'
let b = 'orange'

a = 'watermelon'
b = 'banana'

/* 輸出結(jié)果 */
a = 'watermelon'
  ^

顯而易見, 系統(tǒng)會直接報錯, 因為 const 命名的變量 a 是無法改變的, 后續(xù)無法對其進(jìn)行賦值。

其實 const 命名變量以后, 也不是說就真的無法改變了, 因為const命名時其實是把箭頭指向了內(nèi)存中的一個對象, 只要不改變這個對象地址, const 命名的變量還是可以變化的,例如:

const list1 = []

list1.push('變化1')

console.log(list1)

// ['變化1']

可以看到 list1.pish(' 變化1 ') 不會改變 變量 list1在內(nèi)存中的地址。

但是 list1 = [ '變化1' ] 就會改變 list1 在內(nèi)存中的地址,所以會報錯

const list1 = []

list1 = ['變化1']

console.log(list1)

// 報錯:list1 = ['變化1']
       ^

上述內(nèi)容就是如何在JS中使用let和const方法,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI