快手前端面经
一面
1.css盒模型
2.position
3.BFC
4.通用类型判断
function classof(variable: any): string
5.正则
写一个下划线转化为驼峰命名的方法。
测试数据:'get_element_by_id' 转换为 'getElementById'
6.防抖
实现一个防抖函数debounce。防抖函数释义: 当一个动作连续触发,则只执行最后一次。
7.将数组扁平化去并除其中重复部分数据,得到一个升序且不重复的数组
测试代码:console.log( JSON.stringify( flatten([1, 9, [4, [6, 7], 8], [9, 6], [1, [3, 2, [5] ] ] ] ) ) ) // => [1,2,3,4,5,6,7,8,9]
8.实现
Array.prototype.flat(arr, depth)
9.七层模型
10.TCP/IP分别属于那一层
11.双向链表
二面
1.问题:一个复杂的web工程,内部有很多的静态资源代码,js,css,html,image,用哪种数据结构可以准确描述所有静态资源之间的依赖关系?
2.问题:
斐波那契数列示例:
1,1,2,3,5,8,13,21,34 。。。。
实现这样一个函数,得到指定位置上数列的值。
函数签名:function fib(index: number): number;
调用效果:
fib(2) => 1
fib(4) => 3
3.给出一个数字,判断是否在斐波那契数列中
4.问题:
完成以下功能:任意打开一个网页如新浪或者百度,写一段js代码找到网页中所有以h或者H开头的元素,并打印每种元素的个数,如网页中含有head, hr 和 h2 元素,那么打印出类似如下的结果:(备注:可以上网搜索资料)
{
hr: 3,
h2: 2,
head: 1
}
5.介绍一下fiber机制
6.参与过实习吗
斐波那契数列示例:
1,1,2,3,5,8,13,21,34 。。。。
实现这样一个函数,得到指定位置上数列的值。
函数签名:function fib(index: number): number;
调用效果:
fib(2) => 1
fib(4) => 3
3.给出一个数字,判断是否在斐波那契数列中
4.问题:
完成以下功能:任意打开一个网页如新浪或者百度,写一段js代码找到网页中所有以h或者H开头的元素,并打印每种元素的个数,如网页中含有head, hr 和 h2 元素,那么打印出类似如下的结果:(备注:可以上网搜索资料)
{
hr: 3,
h2: 2,
head: 1
}
5.介绍一下fiber机制
6.参与过实习吗
三面
var obj = {
a: 1,
b: { c: {d:2}},
c: false
}
var tmpl = `
a{ obj.a. }
b{obj.b.c}
c{obj.c.d}
`
=========>
a1
b{d:2}
c{obj.c.d}
攒人品