前端面试必看(手写Promise+js设计模式+继承+函数柯里化等)JavaScript面试全通关(1/3)

本文详细介绍了JavaScript中this的关键概念,包括在不同环境下的行为、严格模式下this的变化,以及call、apply和bind的作用。此外,还涵盖了JavaScript的类与继承、fetchAPI的基础使用和Generator的管理异步。

JS原理

JavaScript中的this

this到底是谁?

有可能是全局对象window,也有可能是调用者,还能人为设置(设置方法call,apply,bind)

1. 如何确认this的值(严格模式下的this)

2. 如何指定this的值

3. 手写call、apply 、 bind

1. 如何确认this的值?

如果没有特殊设置,都是非严格模式

如何开启严格模式?—— 'use strict' 需要写在代码(不包含注释)最顶端

严格模式中的this是谁?

代码实验:

严格模式、在全局执行环境获取this

非严格模式、在全局执行环境获取this

非严格模式、(直接调用)在函数内部(函数作用域)获取this

严格模式、(直接调用)在函数内部(函数作用域)获取this

非严格模式、(对象方法调用)在函数内部(函数作用域)获取this

严格模式、(对象方法调用)在函数内部(函数作用域)获取this

 如何确认this的值?

        1.全局执行环境

                 严格模式,非严格模式:全局对象(window)

        2.函数内部

                2.1 直接调用

                        严格模式下:undefined

                        非严格模式:全局对象(window)

                2.2 对象方法调用

                        严格模式,非严格模式:调用者

        3.开启严格模式

                脚本开启: 'use strict'

                函数内部开启:'use strict'

                注意:'use strict'写在代码顶端

2.如何指定this的值?

记忆区分call、apply:apply的首字母a是数组array的首字母。

call挨个传入参数:

apply以数组的方式传入参数

bind返回一个新函数

bind绑定时已经传入一个参数:

非严格模式、(普通)函数内部对象调用获取this值

&  非严格模式、(普通)函数内部直接调用(获取)this值

非严格模式、箭头函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值