ES6常变量关键字

ES6之前如何定义变量

var num;
  • 可以重复定义变量,会覆盖
    var num = 123;
    var num = 456; // 后定义覆盖先定义
  • 会对变量进行预解析
   console.log(num); // 由于会预解析, 所以输出undefined
    var num = 123;
  /*
    预解析过程:
    var num;
    console.log(num);
    num = 123;
     */

ES6之后如何定义变量

let num;
  • 不允许重定义变量
let num = 123;
let num = 456; // 报错,不允许重复定义
  • 没有预解析
console.log(num);
let num = 123; // let定义的变量不会预解析,会报错:num is not defined

ES6新增的定义常量的关键字

const num = xxx;
  • 常量不能修改
const  num = 123;
num = 456;  //报错
  • 常量必须在定义的同时初始化
const num;
num = 123;  //报错,应该定义的同时初始化
  • 常量的指向不能改变, 但是指向内存中保存的数据可以改变
const arr = [1, 3];
// arr = [2, 4]; // 改变指向 ,报错
arr[0] = 666; // 指向内存中保存的数据可以改变
arr.push(777);
console.log(arr);  // [666, 3, 777]

ES6Z之前没有代码块的概念,ES6语法有代码块的概念

  • ES6之前
    {
        var num = 123;
        console.log(num);  //123
    }
    console.log(num);  //123
  • ES6之后
    {
        let num = 123;
        console.log(num);  //123
    }
//常量一样
    console.log(num);  //  报错 num is not defined
    {
        const num2 = 123;
    }
    // console.log(num2);  //报错 num2 is not defined

你可能感兴趣的:(ES6常变量关键字)