# 三道手写
1.实现一个函数,可以实现下面的效果
```javascript
chunk([1,2,3,4],2) //[[1,2],[3,4]]
chunk([1,2,3,4],3) //[[1,2,3],[4]]
```
先用shift实现了一边,问能不能不改变原数组?
又用slice写了一边
2.实现一个函数,能实现下面的效果
``` js
add(1)(2)(3)//6
add)(2)(4)(6) //12
```
想到了柯里化,但是不知道怎么做了面试官提示可以用箭头函数
```js
function add(num1){
return (num2)=>{
return (num3)=>{
return num1+num2+num3
}
}
}
//这么简单我一开始居然不会做
```
3.实现一个函数,可以以下面的形式翻译字符串
const obj{
a:xyz,
b:uvm
}
111{obj.a}555{obj.b}666{obj.g}
=>111xyz555uvm666{obj.g}
写了一半,面试官说时间不够了,讲讲思路
# 一点点vue
1.你知道遍历时为什么要加key吗
2.key没变的话dom树会重构吗(没太明白什么意思,应该是想要我说虚拟dom会变?)
3.你知道key为什么不能用index吗
# 一点点计网
1.你知道经典的五层协议吗?
2.你知道网络层有哪些协议吗
3.网络层之下又有哪些协议?
4.你知道tcp和udp的区别吗
5.tcp可靠的原因是什么?不要说握手挥手,说有哪些机制?
反问:学习方向建议,把计网底层学好,不要纠结于把框架知识学完再做项目,边做项目边学。了解一下源码和底层实现。
总结:我很菜,面试官知道我很菜,我也知道面试官知道我很菜。于是面试官也没太上心,不过面试官人还是挺好的,没有太刁难我