es6+常见面试题

1.es6新特性,哪些在项目中使用举例说明
let const 解构 箭头函数 Set去重 新增数据类型Symbol 模板字符串`` 类怎么实现继承 模块化
promise async / await
2. var let const 区别

3.Set 怎么去重
ES6中新增了Set数据结构,类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数,如:

let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3];
 let set = new Set(array);
 console.log(set); // 此时打印的是set 结构 Set(5) {1, 2, 3, 4, 5}

ES6中Array新增了一个静态方法Array.from,可以把类似数组的对象转换为数组,如通过querySelectAll方法得到HTML DOM Node List,以及ES6中新增的Set和Map等可遍历对象,如:

 let set = new Set();
 set.add(1).add(2).add(3);
 let array = Array.from(set);
 console.log(array);
 // => [1, 2, 3]

4.模板字符串怎么使用*
主要是针对变量
**5.promise 实现原理? promise的三种状态 **
promise实际上解决jquery的ajax回调地域(解决层层嵌套),只是异步编程的一种解决方案
代码实现:

	new promise(function(resolve,reject) {
		// 111111111
		resolve('...')
	} ).then(function(value) {
		console.log(value)
	}).catch(function(error){
	console.log(error)
})
const p1 = new Promise(function (resolve, reject) {
  setTimeout(() => reject(new Error('fail')), 3000)
})

const p2 = new Promise(function (resolve, reject) {
  setTimeout(() => resolve(p1), 1000)
})

p2
  .then(result => console.log(result))
  .catch(error => console.log(error))

三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)
promise两个特点:
(1)对象的状态不受外界影响
(2)一旦状态改变,就不会再变,任何时候都可以得到这个结果。

promise 缺点: 无法取消promise,如果不设置回调函数,promise内部抛出错误
第三,当处于pending状态时,无法得知目前进展到哪一个阶段(刚刚开始还是即将完成)。
6.es6继承和es5继承的区别

7.箭头函数 this指向
指向包裹她的父函数
8.对async 和 await的认识
项目中应用可以讲异步改成同步执行
9.新增数据类型是谁, 有什么作用

10.es6中对数组遍历的几种方式和不同之处

11.es6解构
数组解构 和 对象解构 , 项目中返回的response.data 可以解构成自己需要的数据
12.对es6的了解
ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。

**13.正确区分数组map方法 和 es6的Map结构 **

你可能感兴趣的:(前端面试题)