腾讯云智一面
我是一个在有压力下,完全处于fw状态的,不管多简单的题目,太难了,面完复盘立马写出!
- 开场简单聊一下
- 两道编程题,1. 重写Array.prototype.find; 2. f(1) = 1, f(2) = 2,f (3) = 3, n > 3时,f(n) = Sumi=3 到 n {f(i - 1) * f(i - 2)};
- 闭包和作用域链的区别
- xss,csrf原理和预防措施
- Promise,async await优缺点,捕获错误
- 浏览器缓存
- 构建工具(不会,没学过)
- 手撕没写出来,对我没兴趣,就问了这么多
- 自己面完后写的,
Array.prototype.find = function (callback, thisArg) { var array = this; for (var i = 0; i < array.length; i++) { var res = callback.call(thisArg, array[i], i, array); if (res) { return array[i]; } } return undefined; }; var getFn = function (n, memo) { if (n === 1) return 1; if (n === 2) return 2; if (n === 3) return 3; if (memo[n]) return memo[n]; let sum = 0; for (var i = n; i > 1; i--) { sum += getFn(i - 1, memo) * getFn(i - 2, memo) } memo[n] = sum; return sum; } var n = 8, memo = Object.create(null); getFn(n, memo)