前端基础 ES6新特性
箭头函数
什么是箭头函数,箭头函数有什么特性
箭头函数:() => {},这个是最简单的箭头函数,一般的函数是:function (){}
区别:
- 最主要的是箭头函数没有this或者说不绑定this
- 箭头函数没有arguments,所以在箭头函数使用这个参数时会去上一个作用域里面查找,如果没有就undefined
- 不能当作构造函数使用(也就是没有constructor,不能new)
- 没有super
- 没有new.target(new.target允许开发者判断函数是否是使用new操作符调用的,如果是使用new操作符调用[new a()],那会返回一个指向构造函数的引用值;在普通函数中调用[a()],就会返回undefined)
- 没有prototype对象
- 由于不绑定this 在使用call apply ,bind的时候,箭头函数会忽略第一个参数
作用:
8. 本来就不需要用到this的匿名函数,例如:[1,2,3].map((item)=>item*10)
this指向
this的绑定方式有四种:默认绑定,隐式绑定,显时绑定,构造绑定(new )
promise
用于封装异步操作,防止回调地狱
function getName(){
return new Promise((resolve,reject)=>{
setTimeout(()=>{//模拟异步请求
resolve(1)
},1000)
})
}
getName().then((res)=>console.log(res));//一秒后会打印 1
let const
解构赋值
const [name,age] = [“小明”,12];
延申操作符
数组形式:
var a = [ 1, 2, 3];
var b = [ 4, 5, 6]
var c =[ ...a, ...b];//[ 1, 2, 3, 4, 5, 6] 等价于a.concat(b)
对象形式
var a = { name:"小明", age:12};
var b = {name:"小强“, ...a}//{ name:"小明", age:12}; 等价于Object.assign({name:"小强"},a)
函数默认值
//函数参数设置默认值
function getName(name="xiaoming"){ }
对象属性简易赋值
var name="小明";
var userInfo={
name
}
//等价于
var userInfo = {
name:"小明"
}
类 class
模块化 import/export
模板字符串
var name=“xiaoming”;
var tempStr=hello world ${name}
;