1.说说var、let、const之间的区别

varletconst三者区别可以围绕下面五点展开:

  • 变量提升

    var 声明的变量存在变量提升,即变量可以在声明之前调用,值为undefined

    letconst 不存在变量提升,即它们所声明的变量一定要声明后再使用,否则报错

  • 暂时性死区

    var 不存在暂时性死区

    letconst存在暂时性死区,只有等到声明变量的那一行代码出现才能获取和使用该变量

  • 块级作用域

    var不存在块级作用域

    letconst 存在块级作用域

  • 重复声明

    var允许重复声明变量 下面的变量会覆盖上面的

    letconst在同一作用域不允许重复变量声明 否则报错 xx has already been declared

  • 修改声明的变量

    varlet可以

    const声明一个只读的常量。一旦声明,常量的值就不能改变

  • 使用

    能用const的情况尽量使用const,其他情况下大多数使用let,避免使用var

es6中数组新增了哪些扩展?

  • 拓展运算符的应用

    ES6通过扩展元素符... 将一个数组转为用逗号分隔的参数序列

  • 构造函数新增的方法

    Array.from() 将两类对象转为真正的数组 ``

    Array.of() 用于将一组值,转换为数组 Array.of(3, 11, 8) // [3,11,8]

  • 实例对象新增的方法

    fill() , flat() …

  • 空值处理

    ES6 则是明确将空位转为undefined

  • sort()排序算法稳定性

es6中对象新增了哪些扩展?

属性的简写

属性名表达式

扩展运算符的应用

es6新增 Set 、 Map 两种数据结构的

Set是一种叫做集合的数据结构,Map是一种叫做字典的数据结构

什么是集合?什么又是字典?

集合
是由一堆无序的、相关联的,且不重复的内存结构【数学中称为元素】组成的组合

字典
是一些元素的集合。每个元素有一个称作key 的域,不同元素的key 各不相同

  • 共同点:集合、字典都可以存储不重复的值
  • 不同点:集合是以[值,值]的形式存储元素,字典是以[键,值]的形式存储

谈谈 set 、map 是什么?

  • set是es6提供的一种新的数据结构,它类似于数组,但是成员的值都是唯一的
  • map是es6提供的新的数据结构,它类似对象,也是键值对的集合,但是键的范围不限于字符串

ES6中 Promise的?使用场景?

Promise,译为承诺,是异步编程的一种解决方案,比传统的解决方案(回调函数回调地狱)更加合理和更加强大

优点:链式操作减低编码难度 ,增加代码可读性

状态 promise对象仅有三种状态

  • pending 进行中
  • fulfilled 已成功
  • rejected 已失败

用你知道的方法合并若干些对象,

  1. 使用 object.assign 浅拷贝
const a = {a:1,b:4};
const b = {b:2,c:3};
let obj1 = Object.assign(a,b);
console.log( obj )
  1. 拓展运算符

    let obj2 = {...a,...b}