ECMAScript let 与 const

let

/* let a = 0;//和var基本相似
console.log(a); */
let a = 0;
var b = 10;//当上方有声明相同变量时(包含let)就会直接报错
/*
    var : 
        1.var 可以重复声明
    
    let:
        1.同一作用域下不能重复声明
*/

let的块级作用域

if(true){
    let a = 1;
}
console.log(a);//报错!!~
{
    //只要是大括号就是一个代码块
  //let在代码块之间,只能在代码块之中进行使用

}
console.log(a);//->1; let->报错未定义
/*
    var : 
        1.var 可以重复声明
        2.作用域: 全局作用域 和 函数作用域
    
    let:
        1.同一作用域下不能重复声明
        2.作用域: 全局作用域 和 块级作用域{}
*/

let 和 var的区别

//JS是有域解析机制的! -> var 定义一个在上面进行调用的时候,并不会报错,而是出现一个undefined;
console.log(a);//var->undefined let->报错
let a = 1;
/*
    var : 
        1.var 可以重复声明
        2.作用域: 全局作用域 和 函数作用域
        3.会进行域解析
    
    let:
        1.同一作用域下不能重复声明
        2.作用域: 全局作用域 和 块级作用域{}
        3.不进行域解析
*/

const 常量

/* 
    const : 常量
        申明的时候必须赋值,赋值了之后不能修改
        1.同一作用域下不能重复声明
        2.块级作用域
        3.不能域解析
        基本和let一样
 */
// const a = 10;//const只能在申明的时候赋值,后面是不允许修改的!
const a = undefined;
// a = 20;//不能修改!
console.log(a);//10

手册地址:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/let

猜你喜欢

转载自www.cnblogs.com/Afanadmin/p/12133795.html
今日推荐