近期面试总结

最近公司又倒闭了,出来面试,记录一下一些经常出现和没回答好的问题,答案稍候补上。

js、css相关

1. 普通函数与箭头函数的区别

2. JS如何实现继承

3. AMD、CMD和ES6模块的实现原理

4. 如何手动实现一个订阅发布模式

5. iPhone X的适配

6. inline-block元素之间产生间距的原因,如何消除

框架相关

1. Vue双向绑定的实现原理,如何自己实现一个双向绑定

2. Vue中computed和watch的区别

3. 虚拟DOM算法

4. Webpack配置主要有哪几部分

5. Webpack中loader和plugin的区别

编程与算法相关

给定一个M×N的数组,按螺旋顺序打印数组

例如,输入:

1
2
3
4
5
6
7
[
[1, 2, 3, 4, 5],
[16, 17, 18, 19, 6],
[15, 24, 25, 20, 7],
[14, 23, 22, 21, 8],
[13, 12, 11, 10, 9]
]

输出:

1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25


找出给定字符串中的所有都连续递增和连续递减的子字符串,子字符串长度至少是2

举例1:
输入'abcxd321',输出'abc''321'。说明:其中’abc’是连续递增的字符串,’321’是连续递减的字符串。

举例2:
输入'abcdc',输出'abcd'。说明:子字符串不重叠,字符优先匹配到前面的递增或递减序列里。