[总结]JavaScript高级面试题总结

new关键字四个工作流程:

1.创建一个空对象

2.将this指向这个对象

3.给对象赋值

4.返回这个对象

构造函数、原型对象、实例对象三者关系:

1.prototype是构造函数的属性,通过构造函数名.prototype可以得到它的原型对象.
2.constructor是原型对象的属性,通过原型对象.constructor可以知道自己是被哪个构造函数创建的.
3.__proto__是实例对象的属性,通过实例对象.__proto__可以让实例对象访问原型对象中的成员(但是在开发中一般不这样使用,因为不符合ECMA标准语法,有些浏览器不支持,开发直接省略即可)

js语言是通过什么技术实现面向对象继承的:

原型链

原型链终点是什么:

null

this三种指向:

1.全局函数: 函数名()                 的this指向window

2.对象的方法: 对象名.方法名() 的this指向对象

3.构造函数:new 函数名()          的this指向new创建的实例对象

call、apply、bind异同点:

相同点:都是用来修改this指向的
不同点:
    (1)传参机制不同:call是一一传参;apply是数组/伪数组经过遍历逐一传参
    (2)执行机制不同:call,apply是立即调用函数;bind是得到一个更新this指向的新函数,不会立即调用函数

闭包:

JavaScript高级程序设计(第四版)中,闭包指的是那些引用了另一个函数作用域中变量的函数.
MDN中,一个函数和上下文引用捆绑在一起(或者说函数被引用包围),这样的组合就是闭包.

递归:

递归函数是函数内部调用自己

递归函数的应用场景:
    (1)浅拷贝转成深拷贝
    (2)遍历dom树

数组几个常用的迭代方法(遍历方法):

map遍历:映射数组

filter遍历:过滤数组

forEach遍历:遍历数组

some遍历:判断数组中是否有满足条件的元素

every遍历:判断数组中所有的元素是否都符合条件

findIndex方法:获取某个元素下标

数组reduce方法:给每一个元素执行一次回调

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

端端1023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值