【秋招复盘】小红书-前端-一面+二面
一面(50min)
- 自我介绍
- http的缓存策略
- 闭包?会引起什么问题?怎么排查内存泄漏
- 说输出
function Foo() { getName = function() { console.log(1) } return this } Foo.getName = function() { console.log(2) } Foo.prototype.getName = function() { console.log(3) } var getName = function() { console.log(4) } function getName() { console.log(5) } Foo.getName() getName() Foo().getName() getName() new (Foo.getName()) console.log(new Foo().getName())
这样有什么变化?
function Foo() { this.getName = function() { console.log(1) } return this } Foo.getName = function() { console.log(2) } Foo.prototype.getName = function() { console.log(3) } var getName = function() { console.log(4) } function getName() { console.log(5) } Foo.getName() getName() Foo().getName() getName() new (Foo.getName()) console.log(new Foo().getName())
- 编程题:
// 就类似这样一个题目,给你id,输入具体的地址, // 比如id是asdasfg直接输出浙江省,gh就是浙江省杭州市 // 用dfs写出来后要求再用bfs写 const cityData = [ { name: '浙江省', id: 'asdasfg', children: [ { name: '杭州市', id: 'gh', children: [ { ... } ] }, { name: '温州市', id: 'asg', children: [ { ... } ] }, ], ... } ]
- 反问
二面 (50min)
- 自我介绍
- 手撕题:实现一个栈,要有入栈、出栈的方法,和length属性(只读)
- 手撕题:给个字符数组,返回一个对象(Object<string, boolean>),如果字符出现1次,值为false,出现两次以上,值为true
- 问项目相关
- 反问