ES6 let和const

振作精神,努力更新!

先定个小目标,每周更新3篇内容!

本周:2022 - 06 - 06 ~ 2022 - 06 - 12 ( 第三篇 )

let 命令:

  1. 存在块级作用域

  2. 不存在变量提升

  3. 暂时性死区

  4. 不允许重复声明

  5. 不自动挂载到window

块级作用域:

无块级作用域场景:

  1. 内层变量可能会覆盖外层变量

    var tmp = new Date();
    function f() {
      console.log(tmp);
      if (false) {
        var tmp = 'hello world';
      }
    }
    f(); // undefined
  2. 用来计数的循环变量泄露为全局变量

ES6 块级作用域:

ES5 不允许在块级作用域声明函数;

但浏览器未遵守 该规定;

ES6 允许在块级作用域声明函数;

行为类似于let声明的变量

但浏览器可以不遵守

function f() {
  console.log('I am outside!'); 
}
(function () {
  // ES6 环境下,行为像添加了:
  // var f = undefined
  if (false) {
    function f() {
      console.log('I am inside!'); 
    }
  }
  f();
}());
// Uncaught TypeError: f is not a function

应避免在块级作用域声明函数

实在需要,应 优先使用函数表达式

{
  let fn = function () {}
}

const 命令:

  1. 一个只读的常量

  2. 声明后必须初始化赋值

  3. 其他性质类似 let

冻结对象:

const foo = Object.freeze({});

声明变量方法:

 var        let        const        function        import        class

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值