ES6--let和const

2021-06-08  本文已影响0人  lvyweb

特点:

let

  1. let声明变量没有变量提升
console.log(a);//Uncaught ReferenceError: Cannot access 'a' before initialization
    let a = 10;
    console.log(a);
  1. 是一个块级作用域
if(1===1){
    let b = 10;
}
console.log(b);//Uncaught ReferenceError: b is not defined
  1. 不能重复声明
    let c = 10;
    let c = 11;
    console.log(c)//Uncaught SyntaxError: Identifier 'c' has already been declared

const

const 声明常量 一旦被声明 无法修改,符合let的特点(没有变量提升,也是块级作用域,不能重复声明)

const max = 30;
console.log(max)//30
max = 40;
console.log(max)//Uncaught TypeError: Assignment to constant variable.
-----------------------------------
const person ={
    name:'小玉米'
}
// 可以这样修改
person.name = "高考";
// 不能这样修改
console.log(person)//{name: "高考"}
person ={
    name:'1212'
} 
// Uncaught TypeError: Assignment to constant variable

作用1 : for循环是个经典的例子

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


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

作用2 : 不会污染全局变量

let RegExp = 10;
console.log(RegExp)// 10
console.log(window.RegExp)// RegExp() { [native code] }

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

上一篇 下一篇

猜你喜欢

热点阅读