目录
1.改变this指向的方法
【 附加在函数调用后面使用,可以忽略函数本身的this指向】
1.call
语法:
函数名.call(要改变的this指向,要给函数传递的参数1,要给函数传递的参数2,......)
2.apply
语法:
函数名.apply(要改变的this指向,[要给函数传递的参数1,2,......])
3.bind
语法:
var newDirection=函数名.bind(要改变的this指向)
newDirection(传递参数)
2.ES6新特性
1.let 和 const 关键字
1.声明变量
var num
let num
const num
2.区别:
let和var:
1.let 没有变量提升【预解析】---->必须先声明再使用
2.let 声明的变量不能重复
3.let具有块作用域--->具体的一个结构语句里----如:if for
let和const:
const声明的变量只能赋值一次,不能重复赋值
3.应用场景:
1.考虑兼容性问题用var
2.不考虑低版本浏览器需多个变量声明时用let
3.变量赋值一次后不再改变用const
2.箭头函数
是ES6里面一个简写函数的语法方式(匿名函数的书写),箭头函数只能简写函数表达式,不能简写声明式函数。
语法:
function fun(){}声明式------>()=>{}
var fun=function(){}函数表达式----->var fun=()=>{}
简写:
1.形参只有一个,括号可以省略
(m)=>{} ==============------m=>{}
2.函数体只有一行代码 大括号可以省略
()=>{console.log("111")}------------------()=>console.log("111")
3.如果只有一行代码 并且代码是return 语句 则大括号和return语句都可以省略
()=>{return 100}-------------()=>100
4. 箭头函数this指向问题
1.在事件处理函数中this->事件源
2.箭头函数中this指向 应用上下文中this对象
3.函数参数默认值
ES5的实现方式
m=m || 10
ES6的实现方式
function fun(m=100){}
fun()
4.解构赋值
快速从对象或者数组中取出成员的一个语法方式
1.对象:
const obj={name:'jack',age:18}
let{name,age}=obj//解构对象赋值
注意:大括号中变量名必须与对象属性名相同
2.数组
const arr=[1,2,3,4]
let{a,b,c,d}=arr
5.模板字符串
定义字符串时用反引号``和模板语法${}
6.展开运算符
...
可以把数组进行展开 ...arr输出是独立的部署数组
const arr=[1,2,3,4]
let arr1=[...arr,5]//合并数组
let arr2=[...arr,arr1]
可以把对象展开
obj1
obj2={
...obj1,
name:'wuYuLing'
}
参数调用
let arr=[1,2,3]
function fun(a,b,c){}fun(...arr)
7.对象字面量简写
let name='wuYuLing'
let age=18
let obj={name,age}