JavaScript中var let const的用法有哪些區(qū)別
1.重復(fù)聲明
var支持重復(fù)聲明,let、const不支持重復(fù)聲明。
1.1 var
var a = 1; var a = 2; console.log(a);
輸出結(jié)果:
2
1.2 let
let b = 3; let b = 4; console.log(b);
輸出結(jié)果:
Uncaught SyntaxError: Identifier 'b' has already been declared
1.3 const
const c = 5; const c = 6; console.log(c);
輸出結(jié)果:
Uncaught SyntaxError: Identifier 'c' has already been declared
2.變量提升
var支持變量提升,但是只提升聲明不提升值。let、const不支持變量提升。
2.1 var
a=2; console.log(a); var a = 1;
輸出結(jié)果:
2
2.2 let
a=2; console.log(a); let a = 1;
輸出結(jié)果:
Uncaught ReferenceError: Cannot access 'a' before initialization at index.html:28
2.3 const
a=2; console.log(a); const a = 1;
輸出結(jié)果:
Uncaught ReferenceError: Cannot access 'a' before initialization at index.html:28
3.暫時性死區(qū)
var不存在暫時性死區(qū),let、const存在暫時性死區(qū)。
只要作用域內(nèi)存在let、const,它們所聲明的變量或常量就自動“綁定”在這個區(qū)域,不再受外部作用域影響。
3.1 var
var a = 1;
function fun() {
console.log(a);
var a = 2;
}
fun();
輸出結(jié)果:
undefined
3.2 let
let a = 1;
function fun() {
console.log(a);
let a = 2;
}
fun();
輸出結(jié)果:
Uncaught ReferenceError: Cannot access 'a' before initialization
3.3 conset
let a = 1;
function fun() {
console.log(a);
const a = 2;
}
fun();
輸出結(jié)果:
Uncaught ReferenceError: Cannot access 'a' before initialization
4. window對象的屬性和方法
全局作用域中,var聲明的變量、通過function聲明的函數(shù),會自動變成window對象的屬性和方法。
var a = 1;
function add() { };
console.log(window.a === a);
console.log(window.add === add);
輸出結(jié)果:
true
true
5.塊級作用域
var沒有塊級作用域,let、const有塊級作用域。
使用var在for循環(huán)中定義變量i:
for (var i = 0; i < 3; i++) {
// console.log(i);
}
console.log(i);
輸出結(jié)果:
3
使用let在for循環(huán)中定義變量i:
for (let i = 0; i < 3; i++) {
// console.log(i);
}
console.log(i);
輸出結(jié)果:
Uncaught ReferenceError: i is not defined
到此這篇關(guān)于JavaScript中var let const的用法有哪些區(qū)別的文章就介紹到這了,更多相關(guān)JavaScript var用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Js中var,let,const的區(qū)別你知道嗎
- Javascript?中?var?和?let?、const?的區(qū)別及使用方法
- javascript中var與let、const的區(qū)別詳解
- JavaScript變量中var,let和const的區(qū)別
- 淺談JS中var,let和const的區(qū)別
- JavaScript變量聲明的var、let、const詳解
- javascript?變量聲明?var,let,const?的區(qū)別
- 面試官常問之說說js中var、let、const的區(qū)別
- JavaScript?ES6語法中l(wèi)et,const?,var?的區(qū)別
- javascript的var與let,const之間的區(qū)別詳解
- JavaScript es6中var、let以及const三者區(qū)別案例詳解
- 詳解javascript中var與ES6規(guī)范中l(wèi)et、const區(qū)別與用法
- 了解javascript中l(wèi)et和var及const關(guān)鍵字的區(qū)別
- 5分鐘快速掌握J(rèn)S中var、let和const的異同
- JavaScript中var、let、const區(qū)別淺析
- JavaScript變量聲明var,let.const及區(qū)別淺析
- JavaScript ES6中const、let與var的對比詳解
- JS變量中有var定義和無var定義的區(qū)別以及es6中l(wèi)et命令和const命令
- JavaScript中const、var和let區(qū)別淺析
- JavaScript聲明變量的這四兄弟(var、let、function、const)
相關(guān)文章
JavaScript中5種調(diào)用函數(shù)的方法
這篇文章主要介紹了JavaScript中5種調(diào)用函數(shù)的方法,本文詳細(xì)的介紹了Javascript中各種函數(shù)調(diào)用的方法及其原理,對于理解JavaScript的函數(shù)有很大的幫助,需要的朋友可以參考下2015-03-03
JS實現(xiàn)仿新浪微博發(fā)布內(nèi)容為空時提示功能代碼
這篇文章主要介紹了JS實現(xiàn)仿新浪微博發(fā)布內(nèi)容為空時提示功能,2015-08-08
JavaScript實現(xiàn)判斷圖片是否加載完成的3種方法整理
這篇文章主要介紹了JavaScript實現(xiàn)判斷圖片是否加載完成的3種方法整理,本文講解了onload方法、javascipt原生方法、jquery方法三種方法,需要的朋友可以參考下2015-03-03
JS中正則表達(dá)式只有3種匹配模式(沒有單行模式)詳解
下面小編就為大家?guī)硪黄狫S中正則表達(dá)式只有3種匹配模式(沒有單行模式)詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-07
JavaScript的模塊化:封裝(閉包),繼承(原型) 介紹
在復(fù)雜的邏輯下, JavaScript 需要被模塊化,模塊需要封裝起來,只留下供外界調(diào)用的接口。閉包是 JavaScript 中實現(xiàn)模塊封裝的關(guān)鍵,也是很多初學(xué)者難以理解的要點2013-07-07

