高频面试题搜集

4,592 阅读2分钟

一、基础

  1. 移动端适配单位pt是什么,rpx,rem,em,vh,vw相互的关联。

  2. 你用的iphone 是多少像素的,物理像素、逻辑像素怎么转换

  3. 前端最快的开发顺序是怎样? a.做ui b.做交互 c.联调数据做渲染 如何组合排序,你使用过哪几种,觉得哪种快

  4. 前端作为开发环节的最下游,交互依赖产品,界面依赖UI,数据依赖后台,他们做改动的时候如何 怼死他们?

  5. 如何让后台不改api结构,让数据联调在开发的‘最开始几天’全部搞定?

    我的答案:

    A. 后台接口让多包一层对象,以备可能的拓展

    B. 最开始让 后台把接口全部写死给前端联调,后台自己以后连数据库去,从此前后端 老死不相往来

    C. 根据需求走, 结构始终不变,外面多包一层对象应对扩展,其他情况一律后台自己把 现有数据转化成 '原规定结构' (正经答案)

  6. 前端发http请求如何 捕获500,400错误, 如何捕获 网络不通的错误?

  7. 进一步报错问题:你的js代码在别人的破手机上运行 报错了,如何收集报错信息上报给你?

  8. 什么是防抖,什么是节流

  9. 请用面向对象的方法继承对象

  10. Vue/angular 的双向绑定原理

  11. 大型视图列表的优化

  12. 请写出一个http请求

  13. Call,apply,bind的区别

  14. JS如何知道图片加载完成?

  15. 请设计一个实时获取后台数据的方案

  16. APP中HTML是如何与数据交互的?

  17. 平时用node写过什么吗

  18. Promise的实现原理

  19. 说说深浅拷贝的异同

  20. 请说说js的内存机制

二、算法

  1. 写出一个方法实现: 输入字符串str1和字符串str2,输出str1是str2的首个元素,是则返回,不是返回-1 禁止使用字符串indexOf方法

  2. 写出一个方法实现: 给出一个整数数组,输出一个满足下列要求的数组:

    1) 是整数数组

    2) 数组中元素都是出现频率>K的元素

    3) 而且元素按照出现频率大小排序

    4) 给出时间复杂度

  3. 写出一个方法实现:给出一个任意数组,取出n个数相加正好得m 我写不出来,面试官降低要求:取出两个数相加正好得m,我才终于写出来,内牛满面

  4. 写出一个方法实现:判断两个数组相等,可能是个二维数组+,返回Boolean

  5. JS方法输出1-100之间的所有素数