面试——ES6有什么新特性

不管是校招仍是社招,若是你恰巧被问及这个问题,那么请你尽量的多说一点,这样面试官才会认为你是真正的掌握了ES6,ES6的内容不少,这里只罗列了经常使用的特性及其要点,在面试的时候还须要围绕这些点根据本身的理解尽量的展开。最后本文只适用于面试回答,不适合用来学习ES6,若是你想更全面的的了解ES6,能够阅读阮老师的ES6入门es6

1. let和const命令的出现

  1. let和const区别:const定义一个只读常量,一旦声明变量,就必须当即初始化,不能留到之后赋值且不可改变。
  2. 不存在变量提高,声明的变量必定要在声明后使用,不然报错
  3. 不容许重复声明变量,不容许在相同做用域内,重复声明同一个变量
  4. 块级做用域,ES6以前只有函数做用域与全局做用域,一个大括号即一个块级做用域
  5. 声明的变量不在属于window

2. 解构赋值

  1. 数组、对象、字符串等解构赋值的基本用法及默认值的设置
  2. 解构的用途
    (1) 交换变量的值
    (2) 接收函数返回的多个值
    (3) 函数参数默认值的设置 (4) 用于模块导入的按需加载

3. 字符串的扩展

  1. 模版字符串
  2. 方法的增添 includes(),startsWith(),endsWith().....
  3. 正则表达式的具名组匹配

4. 数值的扩展

  1. 完善二进制(0b开头)与八进制(0o开头)的表示
  2. 方法的移植与增长parseInt()parseFloat()window对象移植到Number对象上
  3. 指数运算符**

5. 函数的扩展

  1. 函数参数默认值的设置
  2. 箭头函数
    使用箭头函数的注意事项:
    (1)函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象
    (2)不能够看成构造函数,也就是说,不可使用new命令,不然会抛出一个错误
    (3)不可使用arguments对象,该对象在函数体内不存在。若是要用,能够用 rest 参数代替
  3. rest参数

6. 数组的扩展

  1. 扩展运算符
    用途
    (1)复制数组
    (2)合并数组
    (3)函数的rest参数
  2. 方法的扩展Array.from()Array.of()实例上的方法fill()flat()

7. 对象的扩展

  1. 属性以及方法的简洁表示
  2. 属性名表达式
  3. 可遍历性for..inObject.key(obj)
  4. super关键字的增长
  5. 新增方法Object.is()Object.assign()

8. Module导入模块

讲到这一点就颇有必要给面试官讲一下ES6模块与CommoonJS模块的差别面试

  1. CommonJS 模块输出的是一个值的拷贝,ES6 模块输出的是值的引用。
  2. CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。 若是你不是很清楚能够阅读这篇文章

9. 其余方面

  1. promise与async的运用和理解,说起这里他接下来可能会问promise的实现,这也是一道常考题
  2. Symbol数据类型
  3. set和map结构
  4. class

最后但愿你面试成功,越努力越幸运,加油正则表达式

相关文章
相关标签/搜索