es6 学习1 let表示变量 、const表示常量 与 var 变量的区别
程序员文章站
2022-04-16 10:13:00
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' //再次赋值此时会报错
上一篇: vue中本地静态图片路径写法