【秋招复盘】小红书-前端-一面+二面
一面(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
- 问项目相关
- 反问
