专栏
扫码关注公众号
下面哪个会报错,为什么
leta;//不报错consta;//报错const声明的常量不得改变值。这意味着,const一旦声明常量,就必须立即初始化,不能留到以后赋值
如何在ES5环境下实现let
对于这个问题,我们可以直接查看babel转换前后的结果,看一下在循环中通过let定义的变量是如何解决变量提升的问题babel在let定义的变量前加了道下划线,避免在块级作用域外访问到该变量,除了对变量名的转换,我们也可以通过自执行函数来模拟块级作用域
如何在ES5环境下实现const
实现const的关键在于Object.defineProperty()这个API,这个API用于在一个对象上增加或修改属性。通过配置属性描述符,可以精确地控制属性行为。Object.defineProperty()接收三个参数Object.defineProperty(obj,prop,desc)对于const不可修改的特性,我们通过设置writable属性来实现
var,let,const描述不正确的是
正确答案是Dconst和let都不能在同一块级作用域内重复声明变量,不管此变量是用var或者const还是let声明。