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使用起来更方便

 

posted @   啊呀阿鱼呀  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示