欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

es6 学习1 let表示变量 、const表示常量 与 var 变量的区别

程序员文章站 2022-08-09 23:19:50
1、看下代码,在函数中无论在哪里声明变量,都会自动提到函数顶部,这就是函数变量提升,它的作用于为当前函数中。 浏览器解析时 所以不用关心bool是否为true or false。实际上,无论如何test都会被创建声明。 2、当使用let 和 const 时它们的作用域为{} let的作用域是在它所在 ......

1、看下代码,在函数中无论在哪里声明变量,都会自动提到函数顶部,这就是函数变量提升,它的作用于为当前函数中。

function aa() {
    if(bool) {
        var test = 'hello man'
    } else {
        console.log(test)
    }
  }

浏览器解析时

function aa() {
    var test // 变量提升
    if(bool) {
        test = 'hello man'
    } else {
        //此处访问test 值为undefined
        console.log(test)
    }
    //此处访问test 值为undefined
  }

所以不用关心bool是否为true or false。实际上,无论如何test都会被创建声明。

2、当使用let 和 const 时它们的作用域为{}

function aa() {
    if(bool) {
       let test = 'hello man'
    } else {
        //test 在此处访问不到
        console.log(test)
    }
  }

 let的作用域是在它所在当前代码块,但不会被提升到当前函数的最顶部,所以当为false时访问不到test

再说一下

const name = 'lux'
    name = 'joe' //再次赋值此时会报错