es6之let和const

ES6 里新增了两种声明变量的方式,let 和 const,加上原来的 var,一共就有三种方式来声明变量了。那到底该用哪个呢?

let和const的相同点

  • 只在声明所在的块级作用域内有效
  • const和let命令一样在块级作用域内有效,不存在变量提升
  • 不可重复声明

let和const的不同点

  • let声明的变量可以改变,值和类型都可以改变;const声明的常量不可以改变,这意味着,const一旦声明,就必须立即初始化,不能以后再赋值。
1
2
3
4
 
const i ; // 报错,一旦声明,就必须立即初始化
const j = 5;
j = 10; // 报错,常量不可以改变
  • 数组和对象等复合类型的变量,变量名不指向数据,而是指向数据所在的地址。const只保证变量名指向的地址不变,并不保证该地址的数据不变,所以将一个复合类型的变量声明为常量必须严格。

    1
    2
    3
    4
    5
    6
    7
    8
    9
     const arr = [];
    // 报错,[1,2,3]与[]不是同一个地址
    arr = [1,2,3];
    const arr = [];
    // 不报错,变量名arr指向的地址不变,只是数据改变
    arr[0] = 1;
    arr[1] = 2;
    arr[2] = 3;
    console.log(arr.length); // 输出:3
  • let 用来声明变量,并且会在当前作用域形成 代码块

  • conts 用来声明常量,所谓常量就是物理指针不可以更改的变量

备注:用 {} 包起来,这个 {} 就是一个代码块

  • for 循环中 使用let 定义变量,只在for的循环周期内可以使用
请我吃辣条吧~~
-------------本文结束感谢您的阅读-------------