js中let、var、const区别

块级作用域绑定的let const 为JavaScript引入了词法作用域,它们声明的变量不会提升,而且只可以在声明这些变量的代码中使用。

这一新特性还存在一个副作用,即不能在声明变量前访问它们,就算用typeof这样安全的操作符也不行。在声明前访问块级作用域会导致报错,因为绑定在临时死区(TDZ)中。

循环中的使用。在for-in for-of循环中,let和const都会每次迭代时创建新绑定,从而使循环体内创建的函数可以访问到相应迭代的值,而非最后一次迭代后的值(像使用var那样)。let在for循环中同样如此,但在for循环中使用const声明则可能引发错误。

当前使用块级绑定的最佳实践是:默认使用const,只在确实需要改变变量的值时使用let。这样就可以在某种程度上实现代码的不可变,从而 一些错误的产生。

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

推荐阅读更多精彩内容