最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年10月19日 14:11:30   作者:daixiangcn  
在ES6(ES2015)出現(xiàn)之前,JavaScript中聲明變量就只有通過var關鍵字,函數(shù)聲明是通過function關鍵字,而在ES6之后,聲明的方式有var、let、const、function、class,本文主要討論var、let和const之間的區(qū)別

1.重復聲明

var支持重復聲明,let、const不支持重復聲明。

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

到此這篇關于JavaScript中var let const的用法有哪些區(qū)別的文章就介紹到這了,更多相關JavaScript var用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

南陵县| 上饶县| 阜新| 巴里| 深泽县| 白沙| 石城县| 旬邑县| 三江| 新化县| 桑植县| 庆城县| 鄂温| 松滋市| 宾阳县| 萨迦县| 铜鼓县| 三穗县| 资阳市| 平罗县| 四子王旗| 宾川县| 休宁县| 瑞昌市| 内乡县| 瓮安县| 灵川县| 濮阳市| 济源市| 临武县| 辽中县| 邢台县| 理塘县| 义马市| 抚顺市| 玛曲县| 南昌县| 亚东县| 方山县| 永城市| 陇川县|