ES6 变量机制

Posted 张仪ranck

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6 变量机制相关的知识,希望对你有一定的参考价值。

js中定义变量方式如下三种常见方式

var foo = 1;
let data = 2;
const arr = [];

特殊方式

function aa () {}
import aa from "aa"
class AA {}

变量提升和函数提升

函数提升会被优先提升到最前,但是后面的变量名字和函数名一致的话,赋值会覆盖掉前面的函数

var aa = 1 
function aa() {}

aa // 1

var 定义变量的步骤

  • 第一阶段,变量到作用域中,申明变量,未赋值,所以是undefined
  • 第二阶段,赋值,aa = 1
  • 第三阶段,变量回收,标记回收法

块级作用域

foo // undefined
{
  let foo = "dd"
}

临时死区

let 和 const 没有变量提升,必须先定义后使用;
否则会报错

不允许重复声明

let a = 1;

{
  a = 2
}

let a = 5 // 报错

const 定义时候必须赋值

const变量指向的那个内存地址所保存的数据不得改动;
引用类型指向的对象可以修改

const arr = [];

arr.push(1)
arr.d = 2

arr = {} // error

以上是关于ES6 变量机制的主要内容,如果未能解决你的问题,请参考以下文章

ES6

ES6解构赋值

ES6——块级作用域

es6 解构赋值

关于代码分割

关于阮一峰老师es6(第三版)中管道机制代码的理解浅析