let和const
作用域的概念:
ES6之前有2个作用域,一个全局作用域,一个函数作用域.
ES6中新增了一个块作用域
1.只要被{}包起来的,就是一个块作用域
function test() { for (let i=1;i<3;i++){ console.log(i); } console.log(i); }
代码中如果使用ES6. ES6是强制开始了严格模式的。严格模式中,变量未声明不能使用,所以会报错。
ES5中使用严格模式:'use strict'
2.let 不可以重复声明同一个变量否则会报错;
function test() { let a=1; let a=1; }
3.const用于声明常量并且声明时候必须赋值;
function test() { const PI=3.1415926; PI=8; console.log(PI); }
4.const声明时候对象是可以修改的。因为对象是引用类型的;
function test() { const k={ a:1 } k.b=3; console.log(k); }