心似海洋txt,白菜论坛,非诚勿扰刘洛汐
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' //再次赋值此时会报错
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
怎么理解wx.navigateTo的events参数使用详情
微信jssdk踩坑之签名错误invalid signature
网友评论