pikou1995 / pikou1995.github.io

My Github Page
4 stars 1 forks source link

js scope理解的纠正 #3

Open pikou1995 opened 4 years ago

pikou1995 commented 4 years ago

今天在查找js堆和栈的资料的时候,发现一篇文章,写的很不错 JS 变量存储?栈 & 堆?NONONO!

用了这么多let和const, 其实一直对所谓的创建一个新的作用域懵懵懂懂. 就问一个问题, 如果在顶级作用域里面用 let 声明一个变量testLet, 那么window.testLet是什么?

var testVar = 1
let testLet = 2
console.log(window.testVar) // 结果是 1
console.log(window.testLet) // 结果什么?

结果是undefined

const 效果是一样的, 所以建议能用let和const的就不用var, 不会污染全局变量所以更安全. 那新的作用域怎么看到呢? image 可以看到, 是在保存在一个新的scope里面了