关于 var、let、const 的区别,正确的是?

JavaScript

  1. A.var 函数作用域且提升;let/const 块级,const 不可再赋值
  2. B.三者同为函数作用域,只是关键字不同,在 for 循环里声明时的效果也没有差别
  3. C.const 声明的对象属性也不可修改,等同于用 Object.freeze 递归冻结整个对象
  4. D.let 声明的变量同样会提升到函数顶部且可提前访问,值为 undefined