以下內容參考阮一峯老師的文章:http://es6.ruanyifeng.com/#docs/intro
一. ECMAScrpt 6簡介
- 瞭解ES6轉換器(bable,traceur)
- 申明變量的方法:var,let,const,function,import,class
二. let和const命令 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;
}
<!-- 不可重複聲明