关于es6:ES6

70次阅读

共计 1004 个字符,预计需要花费 3 分钟才能阅读完成。

明天有工夫又看了一下 es6 的语法, 略微做了一点总结, 便于日后查阅:
let / const 申明变量, 一下所讲的所有的特点都是相较于 var 来说的

var:

1: 变量晋升: var/function 申明的变量会被晋升到它的调用之前
    console.log(aa); //undefined
    var aa;
    == 等价于 ==
    var aa;
    console.log(aa); //undefined
    aa = 12;
    console.log(aa); //12
    
2: 全局作用域 / 函数作用域
    函数外部能够拜访全局作用域的变量, 大那是全局作用域只能够拜访全局变量,

let 特点:

1 . 不存在变量的晋升
    console.log(bb); // 报错
    let bb;

2 . 暂时性死区
    在一个块级作用域内申明的变量就会绑定在这个区域内了, 在 let 没有申明变量之前这个变量都是不可用的
    1) : console.log(aa); // 报错
         let aa;
        
    2) : function fn(aa){let aa;}
         fn();// 报错,aa 曾经申明过了, 这也阐明了函数的参数实是在这个函数外部申明一个变量
     
   3) : function bar(x = y, y = 2) {return [x, y];
        }
        bar(); // 报错 在赋值 x = y 的时候,y 还没有被申明.
        //function bar(x = 2, y = x) {//  return [x, y];
        //} 这样是可行的
        
 3 . 不容许反复申明; 在同一个块作用域 ("{}" ) 内不能够反复申明同一个变量
     1) : let aa = 1;
          let aa;
          console.log(aa); // 报错, aa 曾经申明
     2) : function fn(bb){let bb;}
          fn();// 报错 ,bb 曾经申明
          
 4 . 块级作用域
     会计作用域外部能够拜访蕴含它的组用域内的变量, 然而却不能拜访蕴含于它的块级作用域的变量
    let tmp = "hello";
      //console.log(aa); // 找不到 aa
      //console.log(bb); // 找不到 bb
      function f() {console.log(tmp); //hello
        //console.log(bb); // 找不到 bb
        let aa = 123;
        if (true) {
          let bb = 567;
          console.log(tmp); //hello
          console.log(aa); //123
        }
      }
      f();

const 特点:
根本以 let 是统一的, 只有一点 const 申明的变量是只读的, 一但申明就必须初始化(赋值), 边切前面也不能够在从新赋值

正文完
 0