js高级面试点总汇

  • 请说说你对面向对象的理解?

面向对象是一种注重结果思维方式

面向对象 : 封装、继承

  • 原型对象是来解决什么问题的?

内存浪费 + 变量污染

  • 请简述原型对象、构造函数、实例对象三者之间的关系(三个属性)

构造函数: prototype指向原型对象

原型对象 : constructor指向构造函数

实例对象: __proto__指向原型对象

  • js是通过什么来实现面向对象继承的?

原型链

  • 请说说什么是静态成员,什么是实例成员。

静态成员: 函数自己的成员

实例成员: 实例对象的成员

  • 请说说你对js中this指向的理解。

调用我,我就指向谁

函数名()                     :指向window

 对象名.方法名()        :  指向对象

new 函数名()             : 函数创建的实例

  • 请说说call apply bind的区别及对应应用场景(面试必问点)

传参方式不同 : call是单个传参,apply是数组、伪数组传参

执行机制不同 : call和aplly会立即执行, bind不会立即执行而是得到一个修改this的新函数

  • 请说说闭包是什么

闭包 是 一个可以访问其他函数内部变量函数

函数 + 上下文引用

  • 请说说闭包是干什么用的

解决变量污染

  • 请说说什么是递归函数

递归函数一个在函数内部调用自己函数

  • 请说说递归函数的应用场景

浅拷贝和深拷贝

遍历dom树

  • 请说说数组几个常用的迭代方法(遍历方法)

筛选数组:arr.filtre()

检测是否所有元素满足条件(开关法) : arr.every()

遍历数组 : arr.forEach()

数组叠加(求累加和) : arr.raduce()​​​​​​​

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值