ES6 变量申明

  1. 原始基本用法

     为变量赋值,只能直接指定值。
      var a = 1;
      var b = 2;
      var c = 3;

  2. 数组解构赋值
    a.  let [foo, [[bar], baz]] = [1, [[2], 3]];
    b.  
var [foo] = [];
    c.  var [bar, foo] = [1];
    数组解构赋值又如下几种情况
      1. 完全解构, 左右两边完全一致,如上 (a) 相当于定义了 三变量 foo, bar , baz
      2. 赋值不完全解构, 如上 (b), 或者 定义不完全解构, 如上 (c), 相当于定义了变量 foo (bar), 如果解构不成功,
变量赋值undefined

  
 3.对象解构赋值
   
   var { foo, bar } = { foo: "aaa", bar: "bbb" };
      相当于定义了变量 foo // "aaa" 和 bar // "bbb"
      过程为 先声明 foo, 和 bar 变量,从赋值对象中查找 与之对应变量名的 key, 然后取key 值 赋值给变量。

      例 1 :(易错点)
      
  let foo;
        let {foo} = {foo: 1};  // SyntaxError: Duplicate declaration "foo"
        {foo} 对象解构赋值  会定义变量 foo  引起,重复定义冲突。

      例 2: (误区)
        let temp =
{ foo, bar } = { foo: "aaa", bar: "bbb" };
        上面赋值语句 申明了三个变量 temp, foo, bar 值分别为
{ foo: "aaa", bar: "bbb" }, "aaa", "bbb"

    4.字符串的解构赋值,
      let [a, b, c] = 'hel';
      相当于数组的解构赋值 =》 a === "h", b === "e", c === "l" 
        

      

posted @ 2017-01-11 11:21  ②卓②  阅读(469)  评论(0编辑  收藏  举报