欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript中var let const的用法有哪些區(qū)別

 更新時間:2021年10月19日 14:11:30   作者:daixiangcn  
在ES6(ES2015)出現(xiàn)之前,JavaScript中聲明變量就只有通過var關(guān)鍵字,函數(shù)聲明是通過function關(guān)鍵字,而在ES6之后,聲明的方式有var、let、const、function、class,本文主要討論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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論