Advanced JavaScript ----- 12.ES6

Introduction 1. ES6


2. ES6 the new grammar

2.1 let

<script type="text/javascript">
    /* --------let关键字就是用来声明变量的-------- */
    // let a = 10;
    // console.log(a);//10

    /* --------使用let关键字声明的变量具有块级作用域-------- */
    // if (true) {
    //     let b = 20;
    //     console.log(b);//20
    //     if (true) {
    //         let c = 30;
    //     }
    //     console.log(c);//报错
    // }
    // console.log(b)

    /* -------在一个大括号中 使用let关键字声明的变量才具有块级作用域 var关键字是不具备这个特点的--------- */

    // if (true) {
    //     let num = 100;
    //     var abc = 200;
    // }
    // console.log(abc); //200
    // console.log(num); //报错


    /* -------防止循环变量变成全局变量--------- */
    for (let i = 0; i < 2; i++) {}
    console.log(i); //报错
</script>

/*-----使用let关键字声明的变量没有变量提升------*/
console.log(a); //报错   必须先声明再使用
let a = 100;


In the variable declaration within a block-level role, it and this whole block-level scope is bound, not by external influences

/* -------使用let关键字声明的变量具有暂时性死区特性------- */
var num = 10
if (true) {
    console.log(num); //报错   因为{}内外的num毫无关系,这里在{}内先使用后定义就会报错;
    //{}内的num不会向上一级作用域查找num
    let num = 20;
}

Guess you like

Origin www.cnblogs.com/deer-cen/p/12409448.html