美文网首页
ES6第N次学习

ES6第N次学习

作者: shanshanfei | 来源:发表于2017-07-10 10:12 被阅读0次

    1、简介

    ECMAScript和JavaScript的区别:
    历史原因就不赘述了,总之,ECMAScript是标准,JavaScript是具体实现。
    ES6是 下一代js标准,涵盖ES2015、ES2016、ES2017,但是一般泛指ES2015。
    一个新的语法从草案到正式标准一般经历5个阶段:stage0 - stage4。

    ****babel只转换新的语法,像箭头函数这些,而不转换新的API,像Promise、Object.assign、Array.from等(详细请看:
    https://github.com/babel/babel/blob/master/packages/babel-plugin-transform-runtime/src/definitions.js
    ),为了使用这些方法,就要安装babel-polyfill,为当前环境提供一个垫片。****

    npm install --save babel-polyfill
    //脚本头部引入
    import 'babel-polyfill';
    

    2、let + const

    **** 不存在变量提升,只能先声明再使用,不能重复声明。
    都存在暂时性死区(块级作用域内有效,不会访问到上级作用域内的相同变量) 。
    尽量避免在块级作用域中声明函数,若必要,声明函数表达式。
    const保证的是指向的变量的内存地址不变,而不是值不变。


    for (let i = 0; i < 3; i++) {//设置循环变量的部分为父作用域
          //循环体部分为子作用域,所以 i 可以重新定义
          let i = 'abc';
          console.log(i);
     }
     // abc
     // abc
     // abc
    
    function func(a, b){
        //重新定义 a b 会报错,属于同一作用域
        let a = 1;
        let b = 2;
    }
    

    ES6中6种声明变量的方式:var function let const import class
    全局变量和顶层对象的属性脱钩。(ES5中全局变量即为window的属性)

    3、解构赋值

    • 有数组和对象、字符串的解构赋值。
    • 当等号右边不是对象和数组时,会将其转换成对象,所以null和undefined报错。
    • 允许设置默认值。
    • 用途:
      • 提取json数据
      • 函数参数的默认值设置
      • 导入指定模块
    let {pattern: variable} = {foo:1, bar: 2}//先模式,再变量
    //尽量避免在解构赋值时使用圆括号,具体可以参考该章:http://es6.ruanyifeng.com/#docs/destructuring
    

    4、字符串的扩展

    字符编码相关就不细说了,没什么实践经验,总是看过就忘,用到的时候再去看了。
    记几个函数:

    includes startsWith endsWith : 是否包含特定字符、是否已特定字符开头结尾等
    repeat padStart padEnds :字符串重复、补齐字符串等
    

    5、正则的扩展

    修饰符: y u
    .source 正文 .flag 标志

    相关文章

      网友评论

          本文标题:ES6第N次学习

          本文链接:https://www.haomeiwen.com/subject/quryhxtx.html