首先要说四月底错过了参加笔试(4.22),结果后面发面试(5.21)邀请(也没抱什么希望)估计主要是写了个项目可能面试官看了想问问。整个面试提问部分可能没有15分钟,问了简历上项目的东西比较多,但是感觉面试官不是很满意。收录一下面试题:
1. 自我介绍
2. 学习前端大概多久?
3. 说一下vue组件之间的通讯方式有哪些 父子之间,兄弟组件
4. 有没有使用过CSS动画 说了transition和animation
5. css选择器有哪些?优先级是什么?
6. JS继承有哪些方式?(原型链继承、组合继承、构造函数继承)参考链接
7. 说一下vue-router的使用原理,两种模式hash和history
8. axios的使用 axios是基于promise用于浏览器和node.js的http客户端。特点:支持浏览器和node.js;支持promise;能拦截请求和响应;能转换请求和响应数据;能取消请求;自动转换json数据;浏览器端支持防止CSRF(跨站请求伪造) 参考链接
9. 跨域的解决方法?追问JSONP和CORS怎末使用 当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域 参考链接
10. jsonp的原理以及和Ajax使用有什么区别,为什么不是真正的Ajax JSONP 是服务器与客户端跨源通信的常用方法。最大特点就是简单适用,兼容性好(兼容低版本IE),缺点是只支持get请求,不支持post请求。核心思想:网页通过添加一个<script>元素,向服务器请求 JSON 数据,服务器收到请求后,将数据放在一个指定名字的回调函数的参数位置传回来。 参考链接
11. 使用的JS调试工具
12. 变量提升,场景题,说输出结果
13. 手写代码:快速排序
static void quicksort(int n[], int left, int right) {
int dp;
if (left < right) {
dp = partition(n, left, right);
quicksort(n, left, dp - 1);
quicksort(n, dp + 1, right);
}
}
static int partition(int n[], int left, int right) {
int pivot = n[left];
while (left < right) {
while (left < right && n[right] >= pivot)
right--;
if (left < right)
n[left++] = n[right];
while (left < right && n[left] <= pivot)
left++;
if (left < right)
n[right--] = n[left];
}
n[left] = pivot;
return left;
}
这是一次比较蓝受的面试体验,主要是问有关Ajax部分掌握的不太好,快速排序也没写好
面试具体的题目可以参考之前的面试总结(持续更新):CSS部分:面试参考 JS部分:JS面试参考 vue部分:vue参考链接