let和const区别

文章描述:

var、let、const它们的区别是什么?

var

var定义的变量会被提升到最顶部

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

undefined

 

let

1、let声明变量,没有变量提升

console.log(a)
let a = 10;

Uncaught ReferenceError: Cannot access ‘a’ before initialization

2、是一个块作用域

console.log(b)
if(1===1){
	let b = 10
}

Uncaught ReferenceError: b is not defined

3、不能重复声明

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

Uncaught SyntaxError: Identifier ‘a’ has already been declared (at

 

const

1、const 声明变量,没有变量提升、是块作用域、不能重复声明

2、const 声明常量 一旦声明,无法修改

const max = 30
max = 40
console.log(max)

Uncaught TypeError: Assignment to constant variable.

 

3、const 只能修改对象里面的值,不能修改没有的值

const person = {
	name:'小明'
}
person.name = 'xiaoming'
person = {
	age:20
}

console.log(person)

index.html:39 Uncaught TypeError: Assignment to constant variable.

 

var和let

var arr = []
for(let i=0;i<10;i++){
	// console.log(i)
	arr[i] = function(){
		return i;
	}
}

console.log(arr[5]())

不会污染全局变量

let RegExp = 10;
console.log(RegExp)
console.log(window.RegExp)

建议:在默认情况下使用const,而只有在你知道变量值需要被修改清空下使用let

发布时间:2023/05/04

发表评论