セクションI(はじめに、ブロックレベルのスコープ、聞かせてとのconst) - スクラッチES6から学びます

以下の記事は、ルアンYifeng教師を参照します。http://es6.ruanyifeng.com/#docs/intro

A. ECMAScrpt 6はじめに

  1. ES6コンバータを学ぶ(bable、traceur)
  2. 、VARを聞かせて、CONST、機能、インポート、クラス:変数のメソッドを宣言し
    ます。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