为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第五天 直面JavaScript中的30个疑难杂症

标签:
JavaScript

学习课程名称:直面JavaScript中的30个疑难杂症
章节名称:函数对象(重难点)
讲师姓名:公明2020


课程内容概述

  1. 常见函数的四种类型有哪些
  2. 一定要知道的变量和函数提升
  3. 带你深入理解作用域和作用域链
  4. 带你图解执行环境
  5. 开发中重载和多态的使用场景有哪些
  6. 高频面试题闭包理解
  7. 开发中call、apply、bind的使用场景区分
  8. new的执行过程有哪几步
  9. 开发中使用this的坑有哪些

常见函数四种类型
匿名函数
1.匿名函数:定义时候没有任何变量引用的函数
2.匿名函数自调:如果函数只执行一次

回调函数:如果一个函数作为对象交给其他函数使用

递归函数:循环调用函数本身

构造函数:构造函数习惯上首字母大写
调用方式不一样,作用也不一样(构造函数用来新建实例对象)

变量提升:变量的声明写在可以在使用变量之后;
函数提升:函数可以先调用,后声明;

JavaScript 变量生命周期
JavaScript 变量生命周期在它声明时初始化。
局部变量在函数执行完毕后销毁。
全局变量在页面关闭后销毁。

作用域链
由多级作用域连续引用形成的链式结果
掌管一切变量的使用顺序: 先在局部找,没有,就延作用域向父级作用域找;

重载

重载可认为是静态的多态,静态联编,发生在编译阶段;
重载就是一组具有相同名字、不同参数列表的函数(方法)。
重载,函数特征之一,表现为在一个类中同名不同参的方法分别被调用会产生不同的结果。

多态

多态是动态的,动态联编,发生在运行阶段;
多态,面向对象特征之一,表现为不同对象调用相同方法会产生不同的结果。可以理解一个方法被不同实现后 展现不同的效果及状态。
静态的比动态的效率高,但动态的最大优点是多态性,提高代码复用性。

call方法

语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象。 说明:call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。 arg1 … argN为被调用方法的传参。

apply方法

语法:apply([thisObj[,argArray]]) 定义:应用某一对象的一个方法,用另一个对象替换当前对象。 说明:apply的第一个参数thisObj和call方法的一样,第二个参数argArray为一个传参数组。thisObj如果未传,那么 Global 对象被用作 thisObj。

bind方法

在ECMAScript5中扩展了叫bind的方法(IE6,7,8不支持) 语法:bind([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:应用某一对象的一个方法,用另一个对象替换当前对象。 说明:bind的thisObj参数也和call方法一样,thisObj如果未传,那么 Global 对象被用作 thisObj。arg1 … argN可传可不传。如果不传,可以在调用的时候再传。如果传了,调用的时候则可以不传,调用的时候如果你还是传了,则不生效。


图片描述图片描述图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消