ES6Javascript教程

ES6教程(一)let和const

2018-07-07  本文已影响0人  klmhly

注意:
ES5 只有全局作用域和函数作用域
ES6的let和const是块级作用域

特点:

# 块级作用域
# 不存在变量提升
# 暂时性死区
# 不允许重复声明

1. let命令
例子1:

{
  let a = 10;
  var b = 1;
}

a // ReferenceError: a is not defined.
b // 1

在代码块之外调用这两个变量,结果let声明的变量报错,var声明的变量返回了正确的值。这表明,let声明的变量只在它所在的代码块有效。

例子2:
for循环计数器很适合用let命令。
对比 varlet的区别:

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

在for循环上用var声明的变量i属于全局变量,所以进行了10次循环,直到第11次退出循环的时候后,i的值是10。然后调用a[6](),此时输出的i就是全局i的值10.

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

对于let声明的变量i,当前的i只在本轮循环有效,所以每一次循环的i其实都是一个新的变量.最后调用a[6](),由于每轮循环函数保存的i值是不同的。所以,运行结果就是那一轮的i=6。

2. const命令
# const声明一个只读的常量。一旦声明,常量的值就不能改变
# const一旦声明变量,就必须立即初始化

上一篇 下一篇

猜你喜欢

热点阅读