ES6新特性

es6语法

1.this的指向

2.修改this指向的方法

3.let和const关键字

4.箭头函数

5.函数参数默认值

6.模板字符串

7.解构赋值

8…展开运算符

9.对象的简写形式

10.es6模块化语法

1.this的指向【面试题】

`概念`: js内部提供的一个关键词。

`全局环境中的this`: window对象。因为什么呢?调用函数是:函数名(); 其实可以看成是 window.函数名()。也就是挂载到了window上自然指向window全局
`在普通函数中的this`:this取决于谁调用,谁调用我,this就指向谁,跟如何定义无关
`对象中方法的this`: 利用对象调用的函数,this指向对象本身
`定时器中的this`: window对象
`事件函数中的this`: 事件源
`箭头函数中的this`: 两种理解:
1. :该函数声明时所处的作用域
2. :箭头函数内没有自己的this,箭头函数内的this就是外部作用域的this。
换句话说,当你需要判断箭头函数内的this的时候,和函数怎么调用没有关系了,要看函数定义在什么位置

`构造函数中的this`:构造函数配合new使用,new关键字会将构造函数中的this指向实例化对象,所以构造函数中的this->实例化对象

'注意': 一般情况,this会指向函数的调用者





`经验一 :`
在js的非严格模式下适用:箭头函数除外
1. 函数的this,不管函数定义在哪里,不管函数怎么定义,只看函数的调用方式
	只要我想知道this是谁
    就看这个this是写在哪个函数里边
    这个函数是怎么被调用的(只看父级函数被调用没,其他不管,父级没调用,自己调用那就指向window)
`经验二 :`
2. 严格模式下,全局函数没有 this,全局this是个 undefiend,其他照搬经验一 即可
 严格模式:'use strict'

2.修改this指向的3种方法【面试题】

`call方法`1. 立即执行对应的函数
    2. 第一个参数用来修改this指向, 不需要被接收
    3. 可以设置多个参数,形参会依次错位的接收
    
`apply方法`1. 立即执行对应的函数
    2. 第一个参数用来修改this指向, 不需要被接收
    3. 只能设置两个参数,第2个参数必须是数组或者伪数组,形参会依次接收数组里面的每一数组元素
    
 `bind方法`1. 不会立即执行对应的函数,而是返回一个修改了this指向的新函数
    2. 第一个参数用来修改this指向, 不需要被接收
    3. 可以设置多个参数,形参会依次错位的接收
    
  # 面试题: call,apply和bind方法的区别?

3.let和const关键字

`概念`: es6语法提供的两个关键字,专门用来声明变量的。

3.0 let 和 const使用场景:

` let一般应用于基本数据类型;const 一般应用于引用数据类型,也就是函数对象等。`

3.1 var和let的区别【面试题】

varlet的区别:
1. var可以重复声明相同的变量,可能会造成程序问题; let不可以重复声明相同的变量

2. var声明的变量会挂载到window对象上,let声明的变量不会挂载到window对象上

3. var声明的变量只有全局和函数作用域,let声明的变量具有块级作用域,用'{}'表示块级作用域

4. var声明的变量支持
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值