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
发表评论