华域联盟 JAVA JavaScript中var let const的用法有哪些区别

JavaScript中var let const的用法有哪些区别

目录

1.重复声明

var支持重复声明,let、const不支持重复声明。

1.1 var

var a = 1;
var a = 2;
console.log(a);

输出结果:

2

1.2 let

let b = 3;
let b = 4;
console.log(b);

输出结果:

Uncaught SyntaxError: Identifier 'b' has already been declared

1.3 const

const c = 5;
const c = 6;
console.log(c);

输出结果:

Uncaught SyntaxError: Identifier 'c' has already been declared

2.变量提升

var支持变量提升,但是只提升声明不提升值。let、const不支持变量提升。

2.1 var

a=2;
console.log(a);
var a = 1;

输出结果:

2

2.2 let

a=2;
console.log(a);
let a = 1;

输出结果:

Uncaught ReferenceError: Cannot access 'a' before initialization at index.html:28

2.3 const

a=2;
console.log(a);
const a = 1;

输出结果:

Uncaught ReferenceError: Cannot access 'a' before initialization at index.html:28

3.暂时性死区

var不存在暂时性死区,let、const存在暂时性死区。
只要作用域内存在let、const,它们所声明的变量或常量就自动“绑定”在这个区域,不再受外部作用域影响。

3.1 var

var a = 1;
function fun() {
    console.log(a);
    var a = 2;
}
fun();

输出结果:

undefined

3.2 let

let a = 1;
function fun() {
    console.log(a);
    let a = 2;
}
fun();

输出结果:

Uncaught ReferenceError: Cannot access 'a' before initialization

3.3 conset

let a = 1;
function fun() {
    console.log(a);
    const a = 2;
}
fun();

输出结果:

Uncaught ReferenceError: Cannot access 'a' before initialization

4. window对象的属性和方法

全局作用域中,var声明的变量、通过function声明的函数,会自动变成window对象的属性和方法。

var a = 1;
function add() { };
console.log(window.a === a);
console.log(window.add === add);

输出结果:

true
true

5.块级作用域

var没有块级作用域,let、const有块级作用域。
使用var在for循环中定义变量i:

for (var i = 0; i < 3; i++) {
    // console.log(i);
}
console.log(i);

输出结果:

3

使用let在for循环中定义变量i:

for (let i = 0; i < 3; i++) {
    // console.log(i);
}
console.log(i);

输出结果:

Uncaught ReferenceError: i is not defined

到此这篇关于JavaScript中var let const的用法有哪些区别的文章就介绍到这了,更多相关JavaScript var用法内容请搜索华域联盟以前的文章或继续浏览下面的相关文章希望大家以后多多支持华域联盟!

您可能感兴趣的文章:

本文由 华域联盟 原创撰写:华域联盟 » JavaScript中var let const的用法有哪些区别

转载请保留出处和原文链接:https://www.cnhackhy.com/83561.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部