(1)let
ES6:新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效.
(2)作用域
ES5:全局作用域,局部(函数)作用域.
ES6:全局作用域,局部(函数)作用域,块级作用域
块级作用域:简单的理解就是一段代码是由一个大括号包裹起来的,那么,这个大括号里面就是一个块级作用域.
(3)基本用法
①声明变量用法不一样
ES5:声明变量用var
ES6:声明变量用let
②代码块作用不一样
块级作用域let和var的区别:
let声明的变量仅在块级作用域内有效,而var声明的变量全局有效.
③不允许重复声明
function test(){
let a=1;
let a=2;
}//报错
④不存在变量提升
console.log(a)//报错 a is not defined
let a=1;