DAY14JS学习--this指向、ES6特性

一、改变this指向

注意:若不写指向的新对象,新对象变为window

1、函数方法call方法

对象方法/函数名.call(this指向的新对象,参数1,参数2...)

参数1,参数2:有实参就写,没有就不写

2、apply方法

对象方法/函数名.apply(this指向的新对象,[参数1,参数2...])

3、bind方法

var 新函数名=函数名.blind(this指向新对象)

对象方法/新函数名()调用新函数

二、Es6新特性

1、let和const 关键字

(1)声明变量

(2)区别

(面试题)let和var:let没变量提升(无预解析),let声明变量必须先定义再使用

 let不能重复声明变量

let具有块作用域==花括号里面

cost和let:cost声明的变量称为常量,只能被赋值一次

cost num = 100
     num = 200  //会报错

(3)应用场景

考虑兼容问题:使用var

变量可以多次赋值:let

变量只赋值一次后,不能再改变:const

2、箭头函数

(1)作用

简化匿名函数(表达式函数)的书写

(2)语法

()=>{}  //语法
cost fun=function(){


}
等价于
cost fun = ()=>{}

(3)简写

形参只有一个,括号可以省略

(m)=>{}
等价于
m=>{}

函数体只有一行代码,花括号可以省略

()=>console.log('aaa')

函数体只有一行代码,并且代码是return语句,花括号和return省略

()=> {return 100}
等价于
() => 100

(4)箭头函数this指向问题

在事件处理函数中this--事件源(不是箭头函数)

箭头函数中this指向应用上下文中this对象

2、函数传递参数的时候默认值

(1)Es5实现

m=m ||50

(2)Es6实现

function fun(m=100){

函数体

}
fun()

3、解构赋值

(1)定义

快速从数组或者对象中取出成员的一个语法方法

(2)对象解构赋值

cost obj={name:'jack',age:'18'}
let {name,age}=obj  //解构对象赋值给花括号中变量name和age

注意:花括号中变量名必须与对象属性名 相同

(3)数组解构赋值

let[a,b,c]=arr
a,b,c是随便取的变量

4、模板字符串

let str=`helloword`

5、展开运算符

(1)展开数组

let arr = [1,2,3]

...arr  //等价于1,2,3

6、对象字面量简写

对象属性名和值变量名相同时,只写一个

let name='jack' //属性值变量
let age=28  //属性值变量
let obj={nam,age}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值