8.6日面试题

 1.闭包的理解,优点缺点,应用场景

闭包:一个函数及其周围引用状态组成的集合

特点:在一个函数中调用另一个函数

优点:

①可以实现Promise的封装和ajax的实现

②有利于前后端分离

③利于开发出回调函数,提高了代码的简洁度

④防抖和节流的出现解决了性能浪费的问题

缺点:

①出现回调地域的问题,回调无法停止,导致死机

②外部无法访问闭包里面的数据,闭环问题

应用场景:

①延长变量生命周期

②回调函数中

③防抖,节流

④ajax请求

 2.事件循环的理解,以及应用理解

理解:Js是单线程的,所以分为了主线程和任务队列,当主线程的任务执行完,才会去任务队列去读取异步任务,将异步任务推入主线程,这个过程不断重复就是事件循环。

读取异步任务时先读取宏任务的同步任务,再读取微任务的同步任务,在读取微任务的异步任务最后在读取宏任务的异步任务

所以说在一定情况下是微任务先执行的也是对的

宏任务:定时器等

3.js类型检验的方式

1. typeof判断

typeof返回的类型都是字符串形式

2. Constructor

实例constructor属性指向构造函数本身

constructor 判断方法跟instanceof相似,但是constructor检测Objectinstanceof不一样,constructor还可以处理基本数据类型的检测,不仅仅是对象类型

3. Instanceof

instanceof可以判类型是否是实例的构造函数

instanceof 后面一定要是对象类型,并且大小写不能错,该方法适合一些条件选择或分支。

4. Object.prototype.toString.call()

判断类型的原型对象是否在某个对象的原型链上

5. 通过object原型上的方法判断

比如array.isArray()来判断是不是一个数组

6. ===(严格运算符)

通常出现在我们的条件判断中,用来判断数据类型的话就会非常的有局限性,比如判断一个变量是否为空,变量是否为数据等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值