如果你想去大公司,如果你是3年左右的iOS开发者,如果你对面试的未知没有十足的信心,如果你期望的薪资在15K+,那么请认真刷完这100道面试题,都是真实公司经历的...你要先自思考,看个人那些方面还不足!
1、自我介绍
2、如何实现一个倒计时功能,类似于蘑菇街中的秒杀。
3、怎么理解es6箭头函数中的this,它和一般函数的this指向有什么区别呢?
4、一个矩形,里面一个樱桃,过樱桃做一条直线,并且没有数据和测量工具,如果做到评分矩形呢?
5、说一下同源策略
6、vue中的路由时如何管理的? 你知道他的实现方式吗?
7、提到了我的博客,问我的博客相关问题。
8、retina屏幕的了解
9、说一说移动端的布局。 flexible。
10、知道原理吗,怎么自己去实现一个flexible。rem布局的实现原理。移动端的点透是什么,有没有了解 11、说一说异步编程的方式有哪些。
12、项目中的设计是怎么回事,说说设计方面。
13、你博客里的轮播图,如果还要优化,你会怎么去优化。
14、你最喜欢的es6中的特性是什么,为什么。
15、为什么选择前端(不是科班,这个问题经常被问。。。)
16、css布局的属性有哪些。
17、有没有遇到过这样的问题:一个有border的div,里面有一个图片,发现图片和下面的border有一定的空隙(baseline)。
18、函数调用的方式有哪些。他们的区别是什么。
19、说一说原型链(这个要非常清楚)。
20、用过什么框架。jquery用过吗?
21、你实习公司的前端leader是谁。
22、给你一个项目,你使用jquery还是vue、react。为什么。(这个问题也是会被经常问到的)
23、说一说异步编程。
24、说一说回调地狱是什么,有什么问题。异常捕获怎么做。
25、说一说promise。一个promise有多个then,如果第一个then出错,后面的还会执行吗,如何捕获异常。如果第一个then出错了,我还想要后面的继续执行,应该怎么做。
26、你在学习js的时候,遇到过哪些js方面的坑、 你觉得js哪些知识会难一些。
27、 MVC 具有什么样的优势,各个模块之间怎么通信,比如点击 Button 后 怎么通知 Model?
28、两个无限长度链表(也就是可能有环) 判断有没有交点
29、UITableView 的相关优化
30、 KVO、Notification、delegate 各自的优缺点,效率还有使用场景
31、如何手动通知 KVO
32、Objective-C 中的 copy 方法
33、 runtime 中,SEL 和 IMP 的区别
34、autoreleasepool 的使用场景和原理
35、RunLoop 的实现原理和数据结构,什么时候会用到
36、block 为什么会有循环引用
37、使用 GCD 如何实现这个需求:A、B、C 三个任务并发,完成后执行任务 D。
38、NSOperation 和 GCD 的区别
39、CoreData 的使用,如何处理多线程问题
40、如何设计图片缓存?
41、有没有自己设计过网络控件?
42、怎么判断某个 cell 是否显示在屏幕上
43、进程和线程的区别
44、TCP 与 UDP 区别
45、TCP 流量控制
46、数组和链表的区别
47、UIView 生命周期
48、如果页面 A 跳转到 页面 B,A 的 viewDidDisappear 方法和 B 的 viewDidAppear 方法哪个先调用?
49、block 循环引用问题
50、ARC 的本质
51、RunLoop 的基本概念,它是怎么休眠的?
52、Autoreleasepool 什么时候释放,在什么场景下使用?
53、如何找到字符串中第一个不重复的字符
54、哈希表如何处理冲突
55、你的成绩怎么样? 为什么不学习原专业?
56、登录状态怎么保持?
57、为什么用本地存储,而不用session,session更加简单啊!
58、http和https的区别是什么?(http、https、http2这些都是经常被问到的)
59、post和get的区别是什么?
60、你会的技术有哪些?
61、你在学校社团是做什么的,你是做什么的?
62、为什么不愿意留在暑期实习的公司?
63、为什么要用Alamofire而不用原生的NSURLSession,Alamofire的优势是什么?
64、如果让你来封装一个网络库,类似于Alamofire或者SDWebImage,你会如何实现?
65、在网络库中,如何针对TableView快速滚动过程中的图片额外渲染进行优化(网络库不能持有TableView)?
66、iOS的系统架构是怎么样的?常用SDK有哪些?
67、了解HTTP协议吗?GET和POST的区别是什么?
68、对安全方面有何了解?如何应对web页面被劫持?了解HTTPS加密解密的过程吗
69、vue和react有什么区别?
70、angular用过吗?
71、说一下同源策略?说一个JSONP?(同源策略和跨域的多种方式还是要很熟练的)
72、304和200的区别是什么。 (状态码也是必须要掌握的,包括各种区别)
73、你所知道的前端优化有哪些内容? (常考的问题,多多总结就好了)
74、linux知道吗? 你所知道的linux命令有哪些?
75、vue中v-if和v-show的区别是什么?(这个实在是记不住了,但是说明了vue不好就是因为api太多)
76、你看过哪些书? (比如计算机的几门专业课、JavaScript高级程序设计、css揭秘、你不知道的JavaScript、深入react技术栈、图解http等等)
77、你会的技术包括哪些
78、为什么不学习原专业,而是要转行。
79、为什么选择了北京而不是西安。
80、项目问题。
81、一个DOM树,其中有两个节点,找出这两个节点公共的父节点? (视频面试)
82、说一下二叉树?
83、如果反转二叉树?
84、简洁、对于不同的类型,如何做出对比?
85、说一下vue和react中的路由实现方式?
86、说一下强缓存和协商缓存? (浏览器的缓存机制也需要很清楚)
87、跨域?
88、说一下设计模式?
89、其中的一个项目,你究竟做了哪些优化?
90、websocket聊天室如果发送失败了,你怎么解决这个问题?如何做到发送图片? 有了文字、图片等不同的数据类型之后,你如何实现数据的存储,如何设计,前端如何获取?
91、websocket聊天室有输入框,那么怎么获取的,对于使用div来模仿textarea,我说使用正则去掉div,那么用户输入的也是div呢? 如果发送失败了呢? 究竟应该是先发送,还是应该先存储到redux中,考虑用户体验(仿照微信)。
92、为什么数据库使用的是mongodb而不是mysql。
93、什么是xss,如何防止xss?
94、边边购项目说一下?登录的整个过程是什么?购物车是怎么存储设计的?如果LocalStorage中数据的值超过了范围,你该如何去处理这个问题?如果商品下架了,那么你如何显示这个商品?登录的过程中,一个用户退出登录,另一个用户登录,那么这个购物车是否还是存在的。说一下边边购项目的多个不同的模块。
95、说一下你说的项目中遇到的问题,然后你是如何解决这个问题的? (这个可以好好准备一下~)
96、websocket的使用,底层是如何处理的。(类似于xhr的。)、
97、websocket在连接的过程中, 会有新包。。balabala 一堆听不懂的词,非常尴尬,,, 我就直接说的不会。
98、手写代码 判断是否是浏览器环境。
99、http和https https的整个过程画一下
100、httPS需要多少时间 比http慢多少 怎么优化
想和我讨论这些面试题的请加qq:2296575155