金山办公web前端面试

  1. 你知道有没有什么事件不支持冒泡,捕获的?
  2. 如果有六百万名考生的高考成绩要排序应该怎么做?
  3. Jsonp并发冲突
  4. Buffer模块是干什么的
  5. webpack打包后文件体积过大怎么办?
  6. 前端如何进行seo优化
  7. 有哪些安全策略,保护用户信息 (cookie 安全性,token 验证用户登录信息) ?
  8. 描述一下React的虚拟dom,为什么要用虚拟dom
  9. 堆里放什么,栈里放什么? 栈里放地址
  10. 描述react生命周期和diff算法
  11. 浏览器前进后退实现思路
  12. inline和inline-block 的区别
  13. 会写小程序吗?
  14. 举一些ES6对String字符串类型做的常用升级优化?
  15. 精确获取页面元素位置的方式有哪些
  16. 描述一下事件轮询
  17. 如何设计一个轮播插件,用伪代码简述思路
  18. 同一个对象节点上绑定多个事件,执行的顺序是怎样的?
  19. 如何实现bind?
  20. js中== 和===的区别
  21. 什么情况会触发重排和重绘?
  22. 假设访问了A.com存了一个cookie,在另一个页面用ajax向A的域名的发请求的话,会携带cookie吗
  23. js继承的几种方式?
  24. 给你一个项目,从头开始你怎么考虑?
  25. 如何防止form表单重复提交?
  26. 由于 this 关键字很混乱,如何解决这个问题

编程题

  • 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。

  • 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。

示例 1: `输入:[1,2,3,1] 输出:4 解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。   偷窃到的最高金额 = 1 + 3 = 4 。


示例 2:

输入:[2,7,9,3,1] 输出:12 解释:偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。   偷窃到的最高金额 = 2 + 9 + 1 = 12 。 ```