從零開始學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;
}
<!-- 不可重複聲明 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章