1.用let声明变量只在块级作用域起作用,适合在for循环使用,也不会出现变量提升现象。同一个代码块内,不可重复声明的相同变量,不可重复声明函数内的参数。

1.同一个块级作用域内,不允许重复声明同一个变量。
{
  var a =1;
  let a =2;  //报错,因为a已经用var声明过
}

2.函数内不能用let重新声明函数的参数
function say(word){
    let word = 'hello Jack';  //报错:用let重新声明word参数
   alert(word)
}
say('hello Lili');//say()函数内用let重新声明了word这个参数,会报错的,千万别这么干。

2.const也是用于声明一个常量,并必须赋值,声明后不可修改,跟let一样,只在块级作用域起作用,
不可重复声明同一个变量,不会变量提升,声明引用类型的常量时,要注意是传址赋值。

1.不可修改
const Name = '张三';
Name = '李四';//错误,企图修改常量Name

2.只在块级作用域起作用,这点与let关键字一样。
if(1){
   const Name = '张三';
 }
alert(Name);//错误,在代码块{ }外,Name失效

3.不存在变量提升,必须先声明后使用,这点也跟let关键字一样。
if(1){
    alert(Name);//错误,使用前未声明
    const Name = '张三';
}

4.不可重复声明同一个变量,这点跟let也一样。
var Name  = '张三';
const  Name = '李四';//错误,声明一个已经存在的变量Name

5.声明后必须要赋值
const NAME; //错误,只声明不赋值

3.IE9正常运行ES6新特性 安装babel

npm install babel-core@5 
<script src="browser.min.js"></script>
<script type="text/babel">
    const Name = '张三';//使用新增的关键字:const声明常量
    alert(Name);
</script>

鱼七小可爱吖
1 声望1 粉丝

墨非定律说 当你越讨厌一个人时 他就会无时无刻不出现在你的面前 而当你想念一个人时 翻遍地球都找不到他 ​​​​