ES6笔记01-声明变量

ES6只有六种声明变量的方法:php

var

命令和code

function

命令,blog

let

内存

const

命令,作用域

import

命令和get

class

命令。因此,ES6一共有6种声明变量的方法。it

const

声明一个只读的常量。一旦声明,常量的值就不能改变。io

const

声明的变量不得改变值,因此const一旦声明变量,就必须当即初始化,不能留到之后赋值console

在ES6中let

命令,用来声明变量。用法相似于function

var

,可是所声明的变量,只在

let

命令所在的代码块内有效。

{
  let a = 10;
  var b = 1;
}
a // ReferenceError: a is not defined.
b // 1

let不存在变量提高。

let

不像

var

那样会发生“变量提高”现象。因此,变量必定要在声明后使用,不然报错。

console.log(test1); // 输出undefined
console.log(test2); // 报错ReferenceError
var test1= 2;
let test2= 2;

暂时性死区。只要块级做用域内存在

let

命令,它所声明的变量就“绑定”(binding)这个区域,再也不受外部的影响。

var tmp = 123;
if (true) {
  tmp = 'qq'; // ReferenceError 在 let

声明变量前,对

tmp

赋值会报错
let tmp;
}

ES6明确规定,若是区块中存在 let

const

命令,这个区块对这些命令声明的变量,从一开始就造成了封闭做用域。凡是在声明以前就使用这些变量,就会报错。

if (true) {
  // TDZ开始
  tmp = 'abc'; // ReferenceError
  console.log(tmp); // ReferenceError
  let tmp; // TDZ结束
  console.log(tmp); // undefined
  tmp = 123;
  console.log(tmp); // 123
}

 
转载于猿2048:➪《ES6笔记01-声明变量》

相关文章
相关标签/搜索