ES6复习——let命令、const命令

六种变量声明方法:var function let const import class

let命令


注意点:
•声明的变量,只在let命令所在的{代码块}内有效

•不存在变量提升
变量只能在声明后使用,否则报错(暂时性死区)

•不允许重复声明

易错案例:

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

上面代码中,变量i是var命令声明的,在全局范围内都有效,所以全局只有一个变量i。每一次循环,变量i的值都会发生改变,而循环内被赋给数组a的函数内部的console.log(i),里面的i指向的就是全局的i。也就是说,所有数组a的成员里面的i,指向的都是同一个i,导致运行时输出的是最后一轮的i的值,也就是 10。

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

上面代码中,变量i是let声明的,当前的i只在本轮循环有效,所以每一次循环的i其实都是一个新的变量,所以最后输出的是6。for循环还有一个特别之处,就是设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域。

const命令


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

注意点:

•不能重复声明,也不能重新赋值

•声明的同时要赋值

•变量和值存储机制和数组对象一样

posted @ 2022-07-09 16:02  Kangf  阅读(17)  评论(0编辑  收藏  举报