今天第一次遇到const定義的變量,查閱了相關(guān)資料整理了這篇文章翠胰。主要內(nèi)容是:js中三種定義變量的方式const容贝, var, let的區(qū)別之景。
1.const定義的變量不可以修改斤富,而且必須初始化。
Js代碼
const?b?=?2;//正確??
//?const?b;//錯(cuò)誤锻狗,必須初始化???
console.log('函數(shù)外const定義b:'?+?b);//有輸出值??
//?b?=?5;??
//?console.log('函數(shù)外修改const定義b:'?+?b);//無法輸出???
2.var定義的變量可以修改满力,如果不初始化會(huì)輸出undefined,不會(huì)報(bào)錯(cuò)轻纪。
Js代碼
var?a?=?1;??
//?var?a;//不會(huì)報(bào)錯(cuò)??
console.log('函數(shù)外var定義a:'?+?a);//可以輸出a=1??
function?change(){??
a?=?4;??
console.log('函數(shù)內(nèi)var定義a:'?+?a);//可以輸出a=4??
}???
change();??
console.log('函數(shù)調(diào)用后var定義a為函數(shù)內(nèi)部修改值:'?+?a);//可以輸出a=4??
3.let是塊級(jí)作用域油额,函數(shù)內(nèi)部使用let定義后,對(duì)函數(shù)外部無影響刻帚。
Js代碼
let?c?=?3;??
console.log('函數(shù)外let定義c:'?+?c);//輸出c=3??
function?change(){??
let?c?=?6;??
console.log('函數(shù)內(nèi)let定義c:'?+?c);//輸出c=6??
}???
change();??
console.log('函數(shù)調(diào)用后let定義c不受函數(shù)內(nèi)部定義影響:'?+?c);//輸出c=3