Day1-ES6-2-let & const

1. let

  let 声明变量,仅在块级作用域内有效,即let所在代码块内有效。

  let不存在变量提升,即需先声明,再使用。

  暂时性死区,在块级作用域内如存在let声明的变量,即不受外部影响。此变量仅在此封闭作用域内有效。

  在for循环中设置循环变量的部分即为一个父作用域。

2.const

  • 块级作用域
  • 不存在变量提升
  • 暂时性死区  

const简单来说即声明常量,但是对于数组和对象来说const声明是确定指针指向的地址。指针指向的地址不可变,但是数组和对象本身可变,即可通过prop,push添加属性和元素。

3.顶层对象

var & function 声明的全局变量为顶层对象的属性;let,const,class声明的全局变量不属于顶层对象的属性。

  • windows   浏览器中顶层对象
  • self            浏览器和Web Worker(运行在后台的js)中的顶层对象
  • global        node中顶层对象
  • this            全局环境中返回顶层对象,nodejs中this返回的是当前模块,es6中this返回undefined

es2020中引入了globalThis作为顶层对象。

posted @ 2021-07-05 17:36  云在青  阅读(26)  评论(0编辑  收藏  举报