如果看着不清晰可以去https://download.csdn.net/download/m0_73761441/90058523访问下载,无需积分
使用百度脑图制作,可以一键导入下面的文本生成自己的脑图
js相关面试题、知识点
数据类型
1. 数据类型分类?分别包含?
2.数据类型判断方法?
3.浅拷贝和深拷贝?
4.显示和隐式类型转换?
继承
1.原型链继承,缺点? Child.prototype=new Parent()
2.构造函数继承,缺点? Parent.call(this)
3.组合继承,缺点?
4.原型式继承 child=Object.create(parent)
5.寄生式继承
6.寄生组合式继承
7.new操作符原理
this
1.是什么?(动态指向当前函数的运行环境)
2.全局环境、函数调用、构造函数中,this指向什么
3.箭头函数的this
4.call、aply、bind的手写实现
作用域
1.什么是作用域?(变量和函数的可访问范围)
2.三种作用域?
3.作用域链?
4.闭包是什么?(本质是当前环境中存在指向父级作用域的引用)应用场景?
数组
1.数组和set区别
2.三种判断数组方法
3.数组常用方法
4.手写实现数组扁平化
5.数组排序(冒泡、快速、桶、计数)
异步编程
1.js单线程,同步任务是什么?异步任务?
2.promise有哪些状态?哪些方法?
3.async/await的特点?
4. generator特点
5.EventLoop实现机制?
内存泄漏
1.可能引起内存泄漏的情况?(闭包、全局变量、循环引用)
2.js中垃圾回收机制(标记清除、引用计数)
3.v8引擎的分代式垃圾回收
es6
1.let和const,块级作用域?
2.箭头函数
3.Promise,如何解决回调地狱?(链式调用,错误冒泡)
4. map,set , weakmap, weakset
原型
1.对原型和原型链的理解?(原型:每个js对象创建时,创建原型对象,对象继承原型对象的内容\n原型链是指对象通过内部的__proto__属性链接到其他对象,当访问对象的属性或方法时,会递归查找)
2.原型的目的?(共享内存,节省资源;实现继承、多态)
3.prototype和__proto__的区别?
1. prototype是函数对象的属性,而__proto__是对象的属性
2. prototype用于定义构造函数的所有实例可共享的属性和方法,__proto__用于构成原型链查找
3. new创建新的对象实例时,这个实例的__proto__会被设置为构造函数的prototype
执行上下文
1.全局上下文、函数上下文、eval上下文
2.上下文包含内容?(变量环境、词法环境、this绑定)