(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;