“全场最佳”(中高级)前端面试题(来自一个前端工程师)

前言

基于我面试别人和被别人面试的经验,我将整理一份清单。我面别人也好别人面我也好,都有一些总会被提及的问题。要记住,有些公司(比如Google)更加关注你是否可以做出高效的算法设计,所以如果你想去那儿工作,除了我下面列出的问题外,你还需要多加练习!

我会在这里添加或是更新这些问题的答案(欢迎你提出有建设性的需求!)
我将问题分为以下几个大类:

  • 概念
  • 编码
  • 改错
  • 系统设计

概念

请用清晰准确的语句解释如下名词(不需要编码):

  1. 什么是“大O”符号,它被用来表示什么?
  2. 什么是DOM?
  3. 什么是时间循环?
  4. 什么是闭包?
  5. 原型继承是怎样的,如何工作,它和普通的继承有什么区别?(这个问题没啥意义,但很多面试官都爱问)
  6. this 如何工作,代表什么?
  7. 什么是事件冒泡,它是如何工作的?(这也不是个好问题,同样的很多面试官很喜欢问。)
  8. 描述几种服务器和客户端之间的通信方式。描述一些网络协议是工作的(IP、TCP、http/S/2、UDP、RTC、DNS等)
  9. REST是什么, 为什么使用它?
  10. 网页加载的很慢,诊断原因且修复它。如何进行性能优化,什么时候应该进行性能优化?
  11. 你用过什么前端框架?它们各有什么优缺点?为什么我们要使用框架?框架能为我们解决什么问题?

编码

实现以下功能:

简单:
  1. isPrime - 返回truefalse, 表示输入的数是否为质数:
isPrime(0)                          // false
isPrime(1)                          // false
isPrime(17)                         // true
isPrime(10000000000000)             // false

  1. factorial - 返回给定数的阶乘的值:
factorial(0)                        // 1
factorial(1)                        // 1
factorial(6)                        // 720

  1. fib -返回斐波那契数列的前n项的和(n为给定) 斐波那契数列.
fib(0)                              // 0
fib(1)                              // 1
fib(10)                             // 55
fib(20)                             // 6765

  1. isSorted - 返回truefalse,表示给定的数组是否被排序过:
isSorted([])                        // true
isSorted([-Infinity, -5, 0, 3, 9])  // true
isSorted([3, 9, -3, 10])            // false

  1. filter - 实现过滤器功能.
filter([1, 2, 3, 4], n => n < 3)    // [1, 2]

  1. reduce- 实现reduce 函数.
reduce([1, 2, 3, 4], (a, b) => a + b, 0) // 10

  1. rever
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值