欢迎访问响应式个人博客!
男生版
女生版
初遇时,她的微笑,她往日的深情、承诺和傻劲,两个人共度的美丽时刻,一一印在回忆里,今天的感情已经比不上从前,但是我爱着恋着往日的她,舍不得离开!
排行
详情
您当前的位置>首页 > 正文
你不得不学的es6
2017-09-26 10:08:19   来源:   评论:0 点击:
  • <%([\s\S]+?)%>g; str = str.replace(evalExpr, '`); \n join( $1 ); \n join(`') .replace(expr, '`); \n $1 \n join(`'); str = 'join(`' + str + '`);'; var script = ` (function parse(data){ var output = ""; function join(html){ output += html; } ${ str } return output; }) ` return script; } var strParse = eval(compile(template)); // 使用 var html = strParse(['shanghai', 'beijing', 'nanjing']); //
    • //
      • shanghai
      • //
        • beijing
        • //
          • nanjing
          • //

          通过两次使用字符串模版,并使用 eval 函数,一个 ES6 简易模版就这样完成了。

          一些其他核心功能

          let const

          ES5 通过 var 来申明变量,ES6 新添 let 和 const,且作用域是 块级作用域

          let 使用和 var 非常类似,let 不存在变量提升,也不允许重复申明,let 的声明只能在它所在的代码块有效,比如 for 循环,非常适合使用 let:

          for(let i = 0; i < data.length; i++){
            console.log(data[i]);
          }
          console.log(i); // error

          如果用 var 来申明 i,最后不会报错。之前学闭包的时候,有一个利用闭包解决循环的问题,用 let 可以解决:

          var a = [];
          for (let i = 0; i < 10; i++) {
            a[i] = function () {
              console.log(i);
            };
          }
          a[6](); // 6

          const 就是申明常量用的,一旦申明即被锁定,后面无法更改。

          const PI = 3.14;
          PI = 3; //error

          let 和 const 都是块级作用域,块级作用域可以任意嵌套,且 {} 内定义的变量,外层作用域是无法获得的,且内外层的作用域可以同名。

          function fn() {
            let n = 1;
            if (true) {
              let n = 2;
            }
            console.log(n); // 1
          }

          解构赋值

          解构赋值真的很好用,但是我每次都忘记使用。ES6 解构赋值基本语法 var [a, b, c] = [1, 2, 3];,从数组中取值,并按照先后次序来赋值。如果解构赋值不成功,就会返回 underfined,解构赋值也允许指定默认值:

          var [a, b] = [1];
          b // undefined
          
          // 指定默认值
          var [a, b = 2] = [1];
          b // 2

          除了数组,对象也可以解构赋值,但是数组是有顺序的,而对象没有顺序,如果想要成功赋值,必须与对象属性同名,才能成功赋值,否则返回 underfined:

          var {a, b} = {a: 1, b: 2};
          a // 1
          b // 2
          
          var {a, c} = {a: 1, b: 2};
          c // undefined

          字符串的解构赋值比较有意思,既可以把字符串当作可以迭代的数组,又可以当作对象,比如:

          var [a1,a2,a3,a4,a5] = 'hello';
          a2 // e
          
          var {length : len} = 'hello';
          len // 5

          函数参数的解构赋值,看一个 forEach 的例子:

          var data = [[1, 2], [3, 4]];
          data.forEach(([a, b]) => console.log(a+b));
          // 3
          // 7

          Promise 解决回掉

          一直以来,回掉问题

相关热词搜索:

上一篇:如果要学习web前端开发,需要学习什么?
下一篇:分享一个目前可用的翻墙方法

收藏