ES6-01-01day

  1. ECMAScriptjavascript的关系是,前者是后者的规格,后者是前者的一种实现。
  2. ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
  3. 不存在变量提升 var命令会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined。这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用。为了纠正这种现象,let命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错。
// var 的情况
console.log(foo); // 输出undefined
var foo = 2;

// let 的情况
console.log(bar); // 报错ReferenceError
let bar = 2;
  1. 暂时性死区 只要块级作用域内 存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响。
var = 123;
if(){
	tmp = "abc";  // ReferenceError
	let tmp;
}

在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”(temporal dead zone,简称 TDZ)。

  1. ES6 的块级作用域 let实际上为 JavaScript 新增了块级作用域。

  2. const命令 const声明一个只读的常量。一旦声明,常量的值就不能改变。
    const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值
    const的作用域与let命令相同:只在声明所在的块级作用域内有效。

  3. ES6 声明变量的六种方法
    ES5 只有两种声明变量的方法:var命令和function命令。ES6 除了添加let和const命令,后面章节还会提到,另外两种声明变量的方法:import命令和class命令。所以,ES6 一共有 6 种声明变量的方法。

你可能感兴趣的:(javascript,开发语言,ecmascript)