从零开始学ES6 -第一节(简介,块级作用域,let和const)

以下内容参考阮一峰老师的文章:http://es6.ruanyifeng.com/#docs/intro

一. ECMAScrpt 6简介

  1. 了解ES6转换器(bable,traceur)
  2. 申明变量的方法:var,let,const,function,import,class
    二. let和const命令
  3. let命令
<!-- 声明的变量仅在块级作用域内有效 -->
{
let a=1;
}
a  //报错

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

}
console.log(i)  //报错

<!-- 不存在变量提升 -->
console.log(bar); //报错
let bar = 2; 

<!-- 暂时性死区 在代码块内,使用let命令声明变量之前,该变量都是不可用的 -->
var tmp=123;
if(true){
    tmp = 'abc';
    let tmp;
} //报错

let x=x;//报错

<!-- 不允许重复声明 -->
function func(){
let a=1;
let a=2;
} //报错
    2. 块级作用域
<!-- let 新增块级作用域-->
function f1(){
    let n=5;
    if(true){
    let n=10;
    }
    console.log(n);
}

<!-- 允许块级作用域的任意嵌套 -->
{{{{
{let insane = "hello world!"}
console.log(insane); //报错,每一层都是一个单独的作用域
}}}}

<!-- 块级作用域内部,优先使用函数表达式 -->
let a= 'secret';
let f=function(){
    return a
}
<!-- 块级作用域必须用大括号,否则不存在 -->
        3. `const`命令
<!- 声明一个只读的常量,一旦申明,常量的值就不能改变 -->
const PI=3.1415;
PI
pI=3 // 报错
<!-- const 一旦声明,必须赋值,不能先申明再赋值 -->
const foo; //报错
<!-- const和let作用域相同,只在块级作用域内有效 -->
if (true){
    const MAX = 5;
}
MAX //报错
<!-- 声明的常量不提升,存在暂时性死区,只能在声明之后使用 -->
if(true){
    console.log(MAX); //报错
    const MAX = 5;
}
<!-- 不可重复声明 

猜你喜欢

转载自blog.51cto.com/boss88/2433098