JS面试题一
1、所有对象都有原型吗?
并不是所有对象都有原型;比如使用Object.create()创建一个对象,我们传递一个参数,那么创建的对象的原型则会指向传递的那个对象;而不传参数,也就是创建一个空对象,那么这个对象的prototype则为空。
2、事件传播的三个阶段是什么?
事件传播的三个阶段有捕获,目标阶段以及冒泡阶段;
第一阶段:从最外层一步一步向里触发,直到到达目标元素,就叫做捕获阶段,capture
第二阶段:目标节点触发事件,称为目标阶段,target
第三阶段:从目标节点一步一步向上链,直到最外层,称为冒泡阶段,bubbling
3、构造函数与普通函数的区别?
- 构造函数没有return,但是它会隐式返回一个对象
- 构造函数的调用必须使用new关键字
- 普通函数的this指向window,而构造函数的this指向返回的实例对象
- 构造函数的属性要用“this.”声明
4、手写一个递归函数
function fn(n){ if(n==1) return n; else return fn(n-1) + fn(n-2); }
5、解释call与apply的用法与区别
call与apply都是用于改变this指向的函数,两个函数都可以自调用,但是call传参数是一个一个传,而apply需要传一个数组,里面包含的则是参数;所以从使用便利方面来说call使用起来更方便
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗