ES6-let会不会提升

https://fangyinghang.com/let-in-js/

https://fangyinghang.com/let-in-js/ 


在es5里面,var会提升,但是let会创造一个单独的作用域,而且不会提升。这样可以避免闭包。

let真的不会吗

变量声明分两步,将变量初始化分配一个地址,然后声明。

~var在初始化的时候紧接着就是声明

~let在初始化后,执行到这一行才会声明

!但是所有的初始化都是会提升到当前作用域顶部的

    用chrome开发者工具测试

let a = a//erro

let a ='a'//报错  a已经被初始化


图片发自简书App

《ES6入门》中


此处var对 tmp 进行了提升 所以打印undefined  就是false的语句块还是会预编译,但是不会执行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容