es6 let 和 const

function test(){

  let a = 1

  for (let i =0;i<3;i++){

    console.log(i)         //1,2

  }

  console.log(i)    //error

  console.log(a)

  const app = 1

  const data = {   //对象是引用类型,最后返回的是对象存的指针,可以改变内部的值

    a: 1

  }

  data.a = 3

  console.log(app ,data.a)      // 1  3

}

test()      //1

es5中作用域有:全局作用域 ,函数作用域。没有块作用域的概念。

es6中新增了块作用域。块作用域由{}包括,if语句和for语句里面的{}也属于块作用域。

var定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问。

let定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。

const用来定义常量,声明的时候必须赋值,而且不能修改。若是对象是引用类型,最后返回的是对象存的指针,可以改变内部的值

猜你喜欢

转载自www.cnblogs.com/sklhtml/p/9842047.html