ES6 语法(let & const)

2019-01-04  本文已影响0人  滨滨_57b5

ES5中变量var有两个作用域,全局作用域函数作用域
ES6中变量let const多了一个作用域,块作用域

varlet 的区别
例如在for循环中,变量i就是在块作用域中

  for (let i = 0; i < 3; i++) {
  //for (var i = 0; i < 3; i++) {
    console.log(i);
  }
  //for循环是一个块作用域,因此在此作用域内用let声明的i,出了块作用域外,生命周期就结束了,即let声明的变量只在自己的块作用域内有效
  //当使用var修饰i时,此处输出i,会正常输出3(ES5用法)
  //当使用let修饰时,此处会报错i是undefined(ES6用法)
  console.log(i);
  //此处使用let,不能重复声明这个变量
  let b = 1;
  let b = 2;
  //正常
  var b = 1;
  var b = 2;

const的使用

function last() {
  //常量,不能修改
  //const在块作用域和let是一样的用法
  //const声明常量时,必须赋值
  const PI = 3.1415926;
  const k = {//常量对象
    a:1
  };
  //当常量是对象时,对象是引用类型(返回值是对象在内存中的指针,即k是指针,指向对象),指针k是不能改变的,对象是可以改变的
  k.b=3;
  console.log(PI,k);
}
last();
上一篇 下一篇

猜你喜欢

热点阅读