這篇“es6中l(wèi)et和const的區(qū)別是什么”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“es6中l(wèi)et和const的區(qū)別是什么”文章吧。
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供大觀網(wǎng)站建設(shè)、大觀做網(wǎng)站、大觀網(wǎng)站設(shè)計(jì)、大觀網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、大觀企業(yè)網(wǎng)站模板建站服務(wù),10余年大觀做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
區(qū)別:1、let聲明的是變量,其值和類型都可以改變,而const聲明的是常量,不可以改變,不能重新賦值;2、let變量,聲明后可以不初始化,而const常量,一旦聲明,就必須立即初始化;3、const總是指向一個(gè)固定的地址,而let不固定。
本教程操作環(huán)境:windows7系統(tǒng)、ECMAScript 6版、Dell G3電腦。
let和const是在es6中新引入了兩種方式來申明變量的關(guān)鍵字,雖然我們?nèi)匀豢梢允褂脧V為傳誦的var變量,但是現(xiàn)在我們有了兩種更牛的工具去使用:let和const。
es6中l(wèi)et和const的區(qū)別
① let聲明的是變量,其值和類型都可以改變;const聲明的是常量,其值和類型都不可以改變。
② let變量,聲明后可以不初始化,而const常量,一旦聲明,就必須立即初始化,不能以后再賦值。
const i ; // 報(bào)錯(cuò),一旦聲明,就必須立即初始化 const j = 5; j = 10; // 報(bào)錯(cuò),常量不可以改變
③ const總是指向一個(gè)固定的地址,而let不固定
const foo = {}; // 為 foo 添加一個(gè)屬性,可以成功 foo.prop = 123; foo.prop // 123 // 將 foo 指向另一個(gè)對(duì)象,就會(huì)報(bào)錯(cuò) foo = {}; // TypeError: "foo" is read-only
上面代碼中,常量foo儲(chǔ)存的是一個(gè)地址,這個(gè)地址指向一個(gè)對(duì)象。不可變的只是這個(gè)地址,即不能把foo指向另一個(gè)地址,但對(duì)象本身是可變的,所以依然可以為其添加新屬性。
說明:
數(shù)組和對(duì)象等復(fù)合類型的變量,變量名不指向數(shù)據(jù),而是指向數(shù)據(jù)所在的地址。const只保證變量名指向的地址不變,并不保證該地址的數(shù)據(jù)不變,所以將一個(gè)復(fù)合類型的變量聲明為常量必須非常小心。
const arr = []; // 報(bào)錯(cuò),[1,2,3]與[]不是同一個(gè)地址 arr = [1,2,3]; const arr = []; // 不報(bào)錯(cuò),變量名arr指向的地址不變,只是數(shù)據(jù)改變 arr[0] = 1; arr[1] = 2; arr[2] = 3; console.log(arr.length); // 輸出:3
es6中l(wèi)et和const的相同點(diǎn):
① 只在聲明所在的塊級(jí)作用域內(nèi)有效。
② 不存在聲明提升,同時(shí)存在暫時(shí)性死區(qū),只能在聲明的位置后面使用。
結(jié)果:會(huì)報(bào)錯(cuò)
③ 不可重復(fù)聲明。
以上就是關(guān)于“es6中l(wèi)et和const的區(qū)別是什么”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。