es6常考点,也不用刻意背题,就是平常开发,你经常用哪些,根面试官将就可以
var let const
// js
var a = 12 // 不管是常量还是变量 都可以定义
a = 13
console.log(a); // 13
// es6
// let 和 const
let b = 12 // 变量 可以更改
f = 13
console.log(f); // 13
const c = 12 // 常量 唯一值,不可更改
// c = 13 // 报错
console.log(c);
// 定义变量更加严谨
// let const 只在块级作用域中有效
console.log(foo);
let foo = 123 // 报错: foo is not defined
// let const 也存在变量提升,会报错,但是不会被初始化,不会被引用
多行字符串/模板变量
结构赋值
块级作用域
函数默认参数
箭头函数
promise基本使用
- new promsie 实例 并且要 return
- new promsie时,要传入函数作为参数,函数有resove,reject两个参数
3.成功时 执行resolve() 失败时执行 reject() - 用then来监听结果
模块化
export 和 export default 区别
1.export default 用于规定模块的默认对外接口
2.很显然默认对外接口只能有一个,所以 export default 在同一个模块中只能出现一次,export可以出现多次
4.其在 import 方式上也和 export 存在一定区别 ,export 使用 {}
export default 直接导入
class
补充
- 你说es6的箭头函数,那么面试官肯定问你,箭头函数和普通函数的区别
- 箭头函数中不绑定this,箭头函数中的this指向是它所定义的位置,可以简单理解成,定义箭头函数中的作用域的this指向谁,它就指向谁
- 箭头函数的优点在于解决了this执行环境所造成的一些问题。比如:解决了匿名函数this指向的问题(匿名函数的执行环境具有全局性),包括setTimeout和setInterval中使用this所造成的问题
- 箭头函数中没有arguments类数组,只能基于…arg获取传递参数的集合
数组
- 由于this只是在当前函数内部使用,而且js函数可以多层嵌套,使得我们无法得到最开始的this,这时我们可以用一个变量存储起来/es6提供的箭头函数
- 模板字符串有哪些功能
- 解析变量${}
- 调用函数${fun()}
- 可以换行
- 剩余参数
- 剩余参数语法,允许我们将不定量的参数表示为数组
ES6 内置对象扩展
- 扩展运算符
扩展运算符可以将数组或对象转化为逗号分隔的参数序列
用处:合并数组(… ,push),将类数组(可遍历对象)(Array.from,[…])转化为数组
Array扩展方法:
Array.find()找出第一个符合条件的数组成员,如果没有找到,但会undefinde
额外补充一道题: 计算当前页面有多少个不重复的标签
1:首先获取页面的所有标签
let arr = document.getElementsByTagName(’*’)
2:TagName得到的是伪数组,需要将其变为数组 […arr]
3:接下来进行数组的去重 new Set(arr)
4:求数量 new Set(…arr).size
new Set([...document.getElementsByTagName('*')]).size