let const var 區(qū)別

1、聲明后未賦值,表現(xiàn)相同

(function() {?

?????var varTest;

?????let letTest; ?

????console.log(varTest); //輸出undefined?

????console.log(letTest); //輸出undefined}

());

2、使用未聲明的變量,表現(xiàn)不同

(function() {

? console.log(varTest); //輸出undefined(注意要注釋掉下面一行才能運(yùn)行)

? console.log(letTest); //直接報(bào)錯(cuò):ReferenceError: letTest is not defined

? var varTest = 'test var OK.';

? let letTest = 'test let OK.';

}());

3、重復(fù)聲明同一個(gè)變量,表現(xiàn)不同

(function() {

? var varTest = 'test var OK.';

? ?let letTest = 'test let OK.';

? ?var varTest = 'varTest changed.';

? ?let letTest = 'letTest changed.'; //直接報(bào)錯(cuò):SyntaxError: Identifier 'letTest' has already been declared

? console.log(varTest); //輸出varTest changed.(注意要注釋掉上面letTest變量的重復(fù)聲明才能運(yùn)行)

? console.log(letTest);

}());

4、變量作用范圍不同,表現(xiàn)不同

(function() {

? var varTest = 'test var OK.';

? let letTest = 'test let OK.';

? {

? ? var varTest = 'varTest changed.';

? ? let letTest = 'letTest changed.';

? }

? console.log(varTest); //輸出"varTest changed.",內(nèi)部"{}"中聲明的varTest變量覆蓋外部的letTest聲明

? console.log(letTest); //輸出"test let OK.",內(nèi)部"{}"中聲明的letTest和外部的letTest不是同一個(gè)變量

}());

5、const定義的變量不可以修改,而且必須初始化

? ??const b = 2;//正確// const b;//錯(cuò)誤

????必須初始化 console.log('函數(shù)外const定義b:' + b);//有輸出????值// b = 5;// console.log('函數(shù)外修改const定義b:' + b);//無法輸出

change

6、var定義的變量可以修改,如果不初始化會輸出undefined,不會報(bào)錯(cuò)

var a = 1;

// var a;//不會報(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} \hange();

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

7、let是塊級作用域,函數(shù)內(nèi)部使用let定義后,對函數(shù)外部無影響

let c=3;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容