箭头函数有哪些特性
- 箭头函数没有this,this的指向是上一级作用域
- 不可以当做构造函数
- 不可以使用arguments对象,该对象在函数体内不存在
- 箭头函数没有prototype属性
- 不能简单返回对象字面量
实现数组去重
var arr = [1,2,2,1,3]
let set = new Set(arr)
let see = Array.form(set)
console.log(see)
使用json方式实现深拷贝
let obj = {unsme:‘dabai’,age:20}
let obj2 = JSON.parse(JSON.stringify(obj))
console.log(obj2)
ES6模板字符串的好处有哪些
- 模板字符串为构造多行字符串和字符串拼接带来了更加方便的方式
- 同一个模板字符串可以通过使用不同的标签,对模板进行进一步处理,输出不同的结果
关于对象扩展的属性简写和属性名表达式写法,请个举一个例子
- 属性名简写:
var title = ‘offcn’
var size = 10
var obj = {
title,
size
} - 属性名表达式:
var title = ‘offcn’
obj[title] = ‘大白’
手写一个promise?对promise的理解
const promise = new Promise(function(resolve,reject){
if(true){
resolve(value)
}else{
reject(error)
}
})
promise.then(res=>{
console.log(res)
}).catch(err=>{
console.log(err)
})
是异步编程的一种解决方案,有三个状态:pending进行中,fulfilled已成功,rejected以失败
promise新建之后会立即执行
用class定义一个类
class Animal{
static Type = ‘动物’
constructor(newName){
this.name = newName
}
eat(){console.log(‘吃东西’)}
static sayHi(){
console.log(‘大家好’)
}
}
class实现继承
class F{
}
class Fn extends F{
constructor(){
super()
}
}
let fns = new Fn()
说一说你对asay…await的理解?
asay…await是基于promise的generator语法糖,它用来等待promise的执行结果,常规函数使用await没有效果,asay修饰的函数内部,return不会得到预期结果,会得到一个promise对象,await等待的是promise结果是resolve状态的内容,reject状态的内容需要使用try…catch获取,await关键字必须要出现在async修饰的函数中.
ES6中的symbol类型什么作用?
ES6新增了symbol数据类型,它用来生成独一无二的值,symbol数据常用来给对象赋值,让对象属性具有唯一性,不容易被覆盖.