ES6标准入门(第三版)学习笔记(1)

  ES6声明变量的六种方法

  ES5只有两种 var,function命令

  ES6新增了let,const,class,import命令

验证var与let用法上的不同

var a = [];
for (var i = 0; i < 10; i++){
  a[i] = function(){
    console.log(i);
  }
}
a[4]();

var声明的i是全局变量,结果是10

var a = [];
for (let i = 0; i < 10; i++){
  a[i] = function(){
    console.log(i);
  }
}
a[4]();

let在for循环的作用域内是有效的

a[4]();的结果是4

ES6新增了块级作用域

外层的代码块不受内部代码块的影响

function f1() {
  let n = 5;
  if (true) {
    let n = 10;
  }
  console.log(n);
}
f1();

f1();的结果为5

function f1() {
  var n = 5;
  if (true) {
    var n = 10;
  }
  console.log(n);
}
f1();

使用var定义n,结果就是10

ES6的块级作用域内声明的函数处理规则

  • 允许块级作用域内声明函数。
  • 函数声明类似var,会提升到全局作用域或者函数作用域的头部。
  • 函数声明还会提升到所在的会计作用域的头部。

猜你喜欢

转载自www.cnblogs.com/typttxs/p/9955580.html