前端面试题(11)

101.用函数递归实现计算斐波那契数列第n位数据

function feibo(n){
    if(n<= 2) {
      return 1
  }
  return feibo(n-2) + feibo(n-1)
}

102.用函数的递归实现计算给定数值n的阶乘

fucntion jieCheng(n){
    if(n<=1) {
        return 1
  }
  return n*jieCheng(n-1)
}

103.JS代码实现一个账号、邮箱的验证

var reg = /^[1-9][0-9]{5,9}$/
var reg2 = /^[0-9a-zA-Z]{6,16}(@qq|@163)(\.com|\.cn|\.com\.cn)$/

104.简述什么是面向对象,面向对象有哪些优缺点

面向对象是一种编程思想,重点关注的是参与解决问题的对象以及对象的特征行为,通过对象的行为的互相调用完成最终问题的解决
优点:开发的软件扩展性好
缺点:开发的软件稳定性较差,需要配合相关的技术进行完善

105. 简述什么是面向过程,面向过程有什么优缺点

面向过程是一种编程思想,重点关注的的是解决问题的步骤和处理过程,代码中最直观的实现方式之一就是函数式编程,将操作步骤定义成函数,函数之间的相互调用就是执行过程
优点:开发的软件稳定性非常高
缺点:开发的软件扩展性较差,可以配合相关的开发模式来进行完善

106.简述call()和apply()有什么区别

call()和apply()都是用来改变函数的调用对象、调用过程中改变this指向
call()和apply()的区别在于传递参数的形式上,call()按照数据序列进行参数传递,apply()通过数组的方式进行参数传递

107.什么是数组深浅拷贝

数组的深浅拷贝本质上就是数组的复制,深拷贝直接复制拷贝数组所有的数据,并生成一个新的数组;浅拷贝就是拷贝数组在堆内存中的地址,不会生成新的数组,本质上就是多个变量指向相同的数组(引用赋值)

108.简述什么是DOM事件流,事件流的三个阶段分别是什么

DOM事件流就是一个完整的事件处理的过程,主要区分为三个不同的阶段:事件捕获、目标事件触发、事件冒泡

109.什么是事件委托,简述一个事件委托的基本实现步骤

事件委托就是将触发的事件委托给目标元素的父元素进行触发
首先要确认触发的目标事件,然后给目标元素的父元素委托目标事件的触发操作,当目标父元素触发事件时,检查目标父元素所有子元素,触发事件元素,通过标签名称或者标签属性匹配目标子元素,执行相关业务代码,最后触发事件元素,若没有匹配到目标子元素,不执行

110.面向对象语法中,获取原型prototype的方式有哪些

类型.prototype 对象._proto_

上一篇
下一篇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值