经过一段忙碌的各大厂的面试,也顺利的拿到了几个offer,总体通过率还是蛮高的。现凭着记忆做了一些面试题目的整理,做个回顾。
1.arr=[6,8,8,7,6,6] 依次输入6 7 8 写几种方法,然后他们的复杂度分别为多少?
2.call bind apply 具体用法(1.改变this指向2.继承) 实例
3.组合构造函数 借用构造函数用法:
https://blog.csdn.net/ddwddw4/article/details/84838592
4. 0 'NAN' undefind null ‘1’ 怎么判断类型
(思路可先用type of 或者Object.prototype.toString.call(),instanceof() 等去结合具体情况去判断。)
5.vue v-for :key为什么必须绑定key值,为什么不推荐使用index?
https://blog.csdn.net/ddwddw4/article/details/85220565
6.闭包问题:
如用let解决问题,实际原理是什么
for(let i=0;i<arr.length;i++){
setTimeout(function(){
console.log(i)
})
}
https://www.cnblogs.com/zhuzhenwei918/p/6131345.html
https://blog.csdn.net/ddwddw4/article/details/78676956 闭包问题解析
7.this 指向问题
function A(){
this.name='asd';
}
var b=new A(); //this 指向哪
https://blog.csdn.net/ddwddw4/article/details/84839165
8._proto_与prototype的区别 Array上面有没有_proto_ ?
https://blog.csdn.net/ddwddw4/article/details/85221056
9.vue双向数据绑定原理
https://blog.csdn.net/ddwddw4/article/details/84765179
https://blog.csdn.net/ddwddw4/article/details/80975024
10.v-model语法糖怎么实现的(v-bind:value + v-on:input)
https://blog.csdn.net/ddwddw4/article/details/84958473
11.arr1=[2,3,5] ,arr2=[2,6,8,5,3] 两个数组合并去重排序
12.vue怎么动态更新数据与视图 (1.Vue.set() 2.比如数组的push,pop,shift,unshift,splice等相关方法。3.改变引用)
13.localstorage 前端怎么做过期处理?(利用时间戳,两次时间戳相减,得出经过时间,去判断是否要做过期处理)
一个网站下面的多个二级子网站 怎么去做共同的登录状态管理, 用啥做,如果用cookie的话怎么做?
本质是 cookie localstorage sessionStorage的区别。
14.flex 的布局使用
15.正则 dsajjw@weel/jtml/sksd/dudongbin1 怎么分别取出dudongbin和1
16.em,px,rem区别?rem布局是怎么实现的?原理是什么
http://caibaojian.com/web-app-rem.html
17.css3写一个三角形
18.前端页面优化技巧
https://www.cnblogs.com/MarcoHan/p/5295398.html
19.Vue 优化技巧 (组件异步加载,keep-alive缓存,图片懒加载等)
20.哪个项目中遇到的难题,怎么解决的?
21.Vue 的生命周期 (11个)
22.vuex的流程(官网)
23.从地址栏输入url到页面展示出来的过程发生了什么?
https://blog.csdn.net/ddwddw4/article/details/84396263
24.link与@import的区别
25.xhtml与html的区别
26.数组的归并 reduce 和用for循环有什么性能上的区别吗 为什么?
27.数组迭代方法
https://blog.csdn.net/ddwddw4/article/details/84647313
28.export 与export default的区别
29.es6 promise 用法例子手写
https://blog.csdn.net/ddwddw4/article/details/84307598
30.Eslint 用过没,手写XX
31.为什么有跨越问题,跨越问题解决办法(1.服务器代理 2.CORS 3.图片Ping 4.JSONP 5.iframe等)
32.深拷贝
https://blog.csdn.net/ddwddw4/article/details/84306615
33.css中百分比问题:
https://blog.csdn.net/ddwddw4/article/details/82962679
34.面试题
function Foo() {
getName = function () { alert (1); };
return this;
}
Foo.getName = function () { alert (2);};
Foo.prototype.getName = function () { alert (3);};
var getName = function () { alert (4);};
function getName() { alert (5);}
//请写出以下输出结果:
Foo.getName();
getName();
Foo().getName();
getName();
new Foo.getName();
new Foo().getName();
new new Foo().getName();
详解 https://blog.csdn.net/ddwddw4/article/details/84942240
35.文件上传的方式?ajax如何实现上传?
https://blog.csdn.net/ddwddw4/article/details/85115162
36.es6的其他用法 (let,const,解构赋值,字符串模板,class promise,扩展运算符等)
37.数组去重方法
https://blog.csdn.net/ddwddw4/article/details/84401353
38.XSS CSRF SQL注入等前端安全问题,怎么解决?
39.其他面试问题参考
http://blog.poetries.top/2017/03/12/front-end-interview-summary
https://blog.csdn.net/wdlhao/article/details/79079660
40. 在我的博客里面有一些平时遇到问题的总结,大部分问题也做了收录,可以参考。
以上关于JS的问题,Javascrpt 高级程序设计(第3版)中都有较为详细的原理解释与说明,可参考。看完这书,js无难题。
http://blog.poetries.top/2017/03/12/front-end-interview-summary
前端面试题整理
https://blog.csdn.net/wdlhao/article/details/79079660
2018最新Web前端经典面试试题及答案
https://baijiahao.baidu.com/s?id=1611739455644700149&wfr=spider&for=pc