Java教程

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

本文主要是介绍[总结]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方法:给每一个元素执行一次回调

这篇关于[总结]JavaScript高级面试题总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!