本文小編為大家詳細(xì)介紹“es6中不用var而是用let的原因是什么”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“es6中不用var而是用let的原因是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、梁河網(wǎng)絡(luò)推廣、微信小程序、梁河網(wǎng)絡(luò)營(yíng)銷、梁河企業(yè)策劃、梁河品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供梁河建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
因?yàn)関ar在if、for循環(huán)中是沒有作用域的,只有借助function的作用域來解決引用作用域外面的變量的問題;而let在if、for循環(huán)中是有塊級(jí)作用域的,這是var所沒有的功能,所以es6中使用let關(guān)鍵字而不是使用var。
本教程操作環(huán)境:windows10系統(tǒng)、ECMAScript 6.0版、Dell G3電腦。
因?yàn)樵谥暗腏avaScript(ES5之前)中,var在像 if ,for循環(huán)中是沒有作用域的,只有借助function的作用域來解決引用作用域外面的變量的問題
在ES6中加入了let,它在if和for中是有塊級(jí)作用域的,let擁有塊級(jí)作用域,一個(gè){}就是一個(gè)作用域,也就是let聲明塊級(jí)變量,即局部變量.
const 也是有塊級(jí)作用域的,當(dāng)我們的修飾的標(biāo)識(shí)符不想再被改變賦值時(shí)用const
建議在ES6開發(fā)中優(yōu)先使用const,只有想改變一個(gè)標(biāo)識(shí)符的時(shí)候才使用let
注意
1.const賦值后不能修改
2.用const定義標(biāo)識(shí)符必須賦值
3.常量的定義是指向的對(duì)象不能修改,但是對(duì)象的屬性可以修改
按照一般邏輯,變量應(yīng)該在聲明語句之后才可以使用,但在上面的代碼中,是聲明之前輸出foo的值,且這個(gè)值為undefined,這就說明變量在聲明之前就已經(jīng)存在了。為什么用var會(huì)出現(xiàn)這種問題呢?
這里就是人們經(jīng)常說的變量提升,即變量可以在聲明之前使用,值為undefined。
我們console用let聲明的變量bar,報(bào)錯(cuò)了,這就表示聲明之前,變量bar是不存在的,這里就沒有變量提升的現(xiàn)象出現(xiàn)。為了糾正這種現(xiàn)象,讓大家更好的理解代碼,let命令改變了語法行為,它所使用的變量一定要在聲明之后使用,否則就會(huì)報(bào)錯(cuò)。
讀到這里,這篇“es6中不用var而是用let的原因是什么”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。