3--面试总结-es6

es6文档: http://es6.ruanyifeng.com/
1、es6新特性
  • let/const
  • 变量的解构赋值(数组的解构赋值,对象的解构赋值,字符串的解构赋值,数值和布尔值的解构赋值,函数参数的解构赋值)
    • 注:圆括号问题
      解构赋值虽然很方便,但是解析起来并不容易。对于编译器来说,一个式子到底是模式,还是表达式,没有办法从一开始就知道,必须解析到(或解析不到)等号才能知道
      不能使用圆括号的情况:   
      • 变量声明语句
        eg:  let [(a)] = [1];  //报错
      • 函数参数
        eg:  function f([(z)]) { return z; } // 报错
      • 赋值语句的模式
        eg:  ({ p: a }) = { p: 42 };
  • 模板字符串
  • 数组相关
    • map
    • set()它类似于数组,但是成员的值都是唯一的,没有重复的值。
  • 字符串相关
           str表示查找的字符串,,index表示开始搜索的位置
    • startWith(str, index)  返回布尔值,表示参数字符串是否在原字符串的头部  eg:  let s="Hello word!" s.startWith('Hello') // true
    • endsWith(str, index)   返回布尔值,表示参数字符串是否在原字符串的尾部  eg:  let s="Hello word!" s.startWith('!') // true 
    • includes(str, index)     返回布尔值,表示是否找到参数字符串                     eg:  let s="Hello word!" s.includes('o') //true
    • repeat(N)  表示将原字符串重复N次(如果传参是小数则会被取整,如果传参是负数或Infiniti会报错)
    • padSrart(length, str)  如果某个字符串不够指定长度,会在头部补全。
    • padEnd(length, str)  尾部补全
    • trimStart()
    • trimEnd()
    • matchAll()  反法返回一个正则表达式在当前字符串的所有匹配
  • 新增数据类型symbal表示独一无二的值。它是 JavaScript 语言的第七种数据类型,前六种是:undefinednull、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。
    • ... 展开操作符/剩余操作
    • 函数相关
      • 箭头函数
      • 函数参数默认值
      • name属性
    • 类/继承 
    • proxy
    • promise
    • async
      <script src="path/to/myModule.js" defer></script>
      <script src="path/to/myModule.js" async></script>
      上面代码中,<script>标签打开deferasync属性,脚本就会异步加载。渲染引擎遇到这一行命令,就会开始下载外部脚本,但不会等它下载和执行,而是直接执行后面的命令。
      deferasync的区别是:defer要等到整个页面在内存中正常渲染结束(DOM 结构完全生成,以及其他脚本执行完成),才会执行;async一旦下载完,渲染引擎就会中断渲染,执行这个脚本以后,再继续渲染。
      一句话,defer是“渲染完再执行”,async是“下载完就执行”。
      另外,如果有多个defer脚本,会按照它们在页面出现的顺序加载,而多个async脚本是不能保证加载顺序的。
    • module的语法
      • export
      • import

猜你喜欢

转载自www.cnblogs.com/janice-jia/p/11789746.html