ES6的let和const关键字

70 阅读2分钟
  • let 与const 延申一道面试题:ES6新推出的let 与const 这两个方法与之前的var有什么区别
    • 以前声明变量一直使用的var关键字来声明变量
    • 在ES6的时候多了两个关键字let / const 也是用来声明变量
      • 语法:let 变量名; const 变量名;
  • 和var的区别
    • 1.let和const 不允许重复声明变量
    • 2.let和const 声明变量的时候不会出现变量提升
    • 3.let和const 声明变量会被所有的代码块 {} 限制作用范围
  • let 和 const的区别
      1. let 声明的变量的值可以改变,const 声明的变量的值不可以被改变,所以我们也把const声明的变量叫做"常量"
      1. let 定义的变量可以不赋值,但是 const 定义的变量 必须赋值
  • 变量提升:
    • 在定义之前去使用这个变量时,如果是通过var这个关键字定义的变量,那么就会出现变量提升,
    • 也就是说能用这个变量,但是没有实际的值,得到的值为undefined
    • 但是如果是通过let或者const定义的变量则不会出现变量提升,也就是说在定义前使用变量,浏览器会报错
    let a = 100 //通过let关键字定义一个变量a,并赋值为10o
    const b = 200 //通过const 关键字定义一个变量b,并赋值为200
    var c = 300

    // 1.let和const 不允许重复声明变量
    // var a = 100
    // var a = 999
    // console.log(a)// 999
    // let b = 100
    // let b = 100
    // const c = 100
    // const c = 200
    // 2.let和const 声明变量的时候不会出现变量提升
    // console.log(a) // undefined
    // var a = 100
    // console.log(a) //100

    // console.log(b) //报错
    // let b = 100
    // console.log(b) //100

    // console.log(c) //报错
    // const c = 100
    // console.log(c) //100

    // 3.let和const 声明变量会被所有的代码块 {} 限制作用范围
    // if(true) {
    //   var a = 100
    //   let b = 200
    //   const c = 300
    // }
    // console.log(a) //100
    // console.log(b)
    // console.log(c)

    // 1. let 声明的变量的值可以改变, const 声明的变量的值不可以被改变,所以我们也把const声明的变量叫做"常量"
    // let a = 100
    // a = 'QF001'
    // console.log(a) //QF001
    // const b = 200
    // b = 'QF666'
    // console.log(b) //报错

    // 2. let 定义的变量可以不赋值,但是 const 定义的变量 必须赋值
    // let a;
    // a = 'QF999'
    // console.log(a) //QF999
    // const b;
    // console.log(b) //报错