关于es6:ES6-变量机制

8次阅读

共计 431 个字符,预计需要花费 2 分钟才能阅读完成。

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
正文完
 0