了解javascript中l(wèi)et和var及const關(guān)鍵字的區(qū)別
來源:懂視網(wǎng)
責(zé)編:小采
時間:2020-11-27 21:56:10
了解javascript中l(wèi)et和var及const關(guān)鍵字的區(qū)別
了解javascript中l(wèi)et和var及const關(guān)鍵字的區(qū)別:1.聲明后未賦值,表現(xiàn)相同 //一個例子 'use strict'; (function() { var varTest; let letTest; console.log(varTest); //輸出undefined console.log(letTest); //輸出undefined }()); 2.使用未聲明的變量,表現(xiàn)不同
導(dǎo)讀了解javascript中l(wèi)et和var及const關(guān)鍵字的區(qū)別:1.聲明后未賦值,表現(xiàn)相同 //一個例子 'use strict'; (function() { var varTest; let letTest; console.log(varTest); //輸出undefined console.log(letTest); //輸出undefined }()); 2.使用未聲明的變量,表現(xiàn)不同
1.聲明后未賦值,表現(xiàn)相同
//一個例子
'use strict';
(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); //直接報錯:ReferenceError: letTest is not defined
var varTest = 'test var OK.';
let letTest = 'test let OK.';
}());
3.重復(fù)聲明同一個變量時,表現(xiàn)不同
//一個例子
'use strict';
(function() {
var varTest = 'test var OK.';
let letTest = 'test let OK.';
var varTest = 'varTest changed.';
let letTest = 'letTest changed.'; //直接報錯:SyntaxError: Identifier 'letTest' has already been declared
console.log(varTest); //
輸出varTest changed.(注意要注釋掉上面letTest變量的重復(fù)聲明才能運(yùn)行)
console.log(letTest);
}());
4.變量作用范圍,表現(xiàn)不同
//一個例子
'use strict';
(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不是同一個變量
}());
5.const定義的變量不可以修改,而且必須初始化
//一個例子
const b = 2;//正確
// const b;//錯誤,必須初始化
console.log('函數(shù)外const定義b:' + b);//有
輸出值
// b = 5;
// console.log('函數(shù)外修改const定義b:' + b);//無法輸出
6.var定義的變量可以修改,如果不初始化會輸出undefined,不會報錯
var a = 1;
// var a;//不會報錯
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
7.let是塊級作用域,函數(shù)內(nèi)部使用let定義后,對函數(shù)外部無影響
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
學(xué)習(xí)到此結(jié)束!
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
了解javascript中l(wèi)et和var及const關(guān)鍵字的區(qū)別
了解javascript中l(wèi)et和var及const關(guān)鍵字的區(qū)別:1.聲明后未賦值,表現(xiàn)相同 //一個例子 'use strict'; (function() { var varTest; let letTest; console.log(varTest); //輸出undefined console.log(letTest); //輸出undefined }()); 2.使用未聲明的變量,表現(xiàn)不同