let和const

2017-12-22  本文已影响0人  嘿嘿_信我者得永生

let

  1. 在ES5中,函数如果在块级代码里面声明,作用域也是在函数范围内,但在ES6中函数如果在块级作用域里面声明,则函数的生命周期相当于使用let声明,即块级作用域
function f() { console.log('I am outside!'); }

(function () {
  if (false) {
    // 重复声明一次函数f
    function f() { console.log('I am inside!'); }
  }

  f();
}());

es5中,因为函数声明会自动提升,所以执行结果是 I am inside!
es6中,理论上会得到I am outside!
但是因为这种差别太大,因此在浏览器的实现(其他实现就是这样)中,并不是这样,而是

这样一来当在ES6中执行这段代码的时候,块级函数的声明被提升到前面 相当于 var f,这样一来就会报错 f is not a function

const 表示声明常量

上一篇 下一篇

猜你喜欢

热点阅读