var、let、const之间的区别

2023-10-19  本文已影响0人  Goorln

一、var

在ES5中,顶层对象的属性和全局变量是等价的,用var声明的变量既是全局变量,也是顶层变量

注意:顶层对象,在浏览器环境指的是window对象,在 Node 指的是global对象

二、let

let 是ES6新增的命令,用来声明变量

用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效

let不允许在相同作用域中重复声明

三、const

const声明一个只读的常量,一旦声明,常量的值就不能改变

区别:
console.log(a)   // undefined
var a= 10

console.log(b)  // Cannot access 'num' before initialization
let b = 20

console.log(c)  // Cannot access 'num' before initialization
const c = 30
{
    var a = 10
}
console.log(a)  // 10

{
    let b = 20
}
console.log(b)  // Uncaught ReferenceError: b is not defined

{
    const c = 30
}
console.log(c)  // Uncaught ReferenceError: c is not defined
var a = 10
a = 20
console.log(a)  // 20

let b = 10
b = 20
console.log(b)  // 20

const c = 10
c = 20
console.log(c) // Uncaught TypeError: Assignment to constant variable
var a = 10
a = 20
console.log(a)  // 20

let b = 10
b = 20
console.log(b)  // 20

const c = 10
c = 20
console.log(c) // Uncaught TypeError: Assignment to constant variable
总结:能用const的情况尽量使用const,其他情况下大多数使用let,避免使用var
上一篇 下一篇

猜你喜欢

热点阅读