了解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)不同
//一個例子
(function() {
console.log(varTest); //輸出undefined(注意要注釋掉下面一行才能運(yùn)行)
console.log(letTest); //直接報(bào)錯:ReferenceError: letTest is not defined
var varTest = 'test var OK.';
let letTest = 'test let OK.';
}());
3.重復(fù)聲明同一個變量時(shí),表現(xiàn)不同
//一個例子
'use strict';
(function() {
var varTest = 'test var OK.';
let letTest = 'test let OK.';
var varTest = 'varTest changed.';
let letTest = 'letTest changed.'; //直接報(bào)錯: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,不會報(bào)錯
var a = 1;
// var a;//不會報(bào)錯
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é)束!
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
script標(biāo)簽的 charset 屬性使用說明
如果外部文件中的字符編碼與主文件中的編碼方式不同,就要用到 charset 屬性。2010-12-12
淺析javascript的間隔調(diào)用和延時(shí)調(diào)用
文章主要通過小實(shí)例談?wù)刯avascript的間隔調(diào)用和延時(shí)調(diào)用,非常的簡單實(shí)用,有需要的小伙伴可以參考下2014-11-11
JavaScript中CreateTextFile函數(shù)
JavaScript中CreateTextFile函數(shù)是創(chuàng)建指定的文件名并返回一個 TextStream 對象,可以使用這個對象對文件進(jìn)行讀寫2020-08-08
JavaSacript中charCodeAt()方法的使用詳解
這篇文章主要介紹了JavaSacript中charCodeAt()方法的使用詳解,是JS入門學(xué)習(xí)中的基本知識,需要的朋友可以參考下2015-06-06
深入理解JavaScript系列(50):Function模式(下篇)
這篇文章主要介紹了深入理解JavaScript系列(50):Function模式(下篇),本篇我們介紹的一些模式稱為初始化模式和性能模式,主要是用在初始化以及提高性能方面,一些模式之前已經(jīng)提到過,這里只是做一下總結(jié),需要的朋友可以參考下2015-03-03

