如果你想去大公司,如果你是3年左右的iOS開發者,如果你對面試的未知沒有十足的信心,如果你期望的薪資在15K+,那麼請認真刷完這300道面試題,都是真實公司經歷的...答案會在近期更新!你要先自思考,看個人那些方面還不足!結尾有部分資料。

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、如何手動通知 KVO32、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慢多少 怎麼優化101、https有什麼缺點102、手寫快速排序 複雜度 最慢是多少 為什麼取第一個值作為中間值 如果這個值是最大的或者最小的怎麼辦103、http2有哪些特性 頭部壓縮怎麼回事104、100層 1個花瓶仍 找到n層不碎 n + 1層碎了的情況 2個花瓶呢105、node了解多少 全局對象是什麼106、事件機制說一下 事件綁定說一下 手寫如何把div中的a放在平級其中的事件會怎麼樣 冒泡會到document還是window107、推薦一下身邊厲害的人,你覺得你比他厲害嗎。為什麼108、xss怎麼防範 尖括弧應該怎麼過濾,一直問確定嗎,最後也沒說清楚109、用過哪些框架110、移動端如何真機調試111、tap是怎麼回事、和click的區別。。。112、cookie和session有什麼區別113、說一下瀏覽器緩存問題114、動態規劃是怎麼回事115、進程和線程的區別是什麼116、說一下restful api吧,117、說一說post和get的區別,118、說一下狀態碼吧119、你覺得什麼樣的代碼是好的代碼 (這個其實還挺考驗實力的)120、說一下position的幾個屬性吧。121、typescript你用過嗎?122、最後又聊了一下部門的情況。121、說一下你做過的幾個項目吧。123、框架對比一下124、cookie和session有什麼區別,cookie的大小是多少。125、css3了解多少,說到了漸進增強和優雅降級126、vue接觸過多長時間、react接觸過多長時間、127、你對互聯網公司怎麼看,你想要什麼樣的公司、未來是怎麼樣的。128、樂信你了解多少,你對來深圳工作怎麼看。129、你還轉載過美團的文章?嗯 (很多面試官還是會看博客的,謝謝博客總是好的)130、cookie和localStorage區別,如何把cookie寫在一個對象中,其屬性就是鍵值對131、實現水平豎直居中的幾中方法(高度和寬度不確定)132、flex是什麼133、深拷貝和淺拷貝的區別,手寫深拷貝 (博客里總結過,遂讓手撕)134、Oject的幾中方式,如何區分 (這個也是常考的)135、兼容性說一說,你做的PC端兼容性是到哪的136、如何看待最近react事件 (百度、wordpress棄用事件。可以多關注前端的一些動態)137、JQuery和三大框架的區別,react和vue的區別138、說一說CSS3中的動畫,animation中可以取哪些值 (css3動畫也很重要)139、flex布局是什麼,默認的方向是什麼,如何改變方向140、你的博客都是自己寫的嗎? 你所有所學都會寫成博客嗎?141、說一說原型和原型鏈,object是最上面的嗎?142、vue中的數據雙向綁定是如何實現的、143、display有哪些,回答了7 8個,還是不滿意144、你的node項目中有幾個線程,有幾個進程,如果node進程崩潰了,如何知道145、node中的process是什麼146、node中如何創建子進程/19講一講你遇到的比較困難的事情,問了兩個,最後是怎麼解決的147、CSS中的單位有哪些分別說一說 (提到了ex)148、你未來的發展規劃是怎麼樣的149、跨域,舉一個例子,安全性問題到底在哪裡150、100萬個數據中,找出前10大數據,最快的方法是什麼,堆排序怎麼寫151、登錄狀態怎麼使用cookie保持,最好的方法是什麼152、頁面中一個video,可能格式不支持,那麼前端如何判斷並給出提示?153、通過比較img的onerror是一種方法, 通過伺服器端也可以保存一些屬性來標識哪些瀏覽器支持,哪些不支持154、為什麼要用vue和react,而不用JQuery,給你一個項目,什麼情況下使用單頁面應用,什麼情況下使用多頁面應用。155、你所知道的前端大會有哪些,比如騰訊web前端大會,CSS conf大會,js conf大會。156、你學習的前端號有哪些,比如前端早讀課,那麼維護者是誰。157、前端的表單中如何設置表單的方式,如multipart, www等,對於multipart具體是如何區分其中的不同的格式的158、http2的所有特性。159、http2中的頭部壓縮和多路復用。160、迅雷一面比較基礎,二面會根據項目擴展,體驗還是不錯的,和面試官聊得很開心。161、post、put和get的區別什麼162、localStorage和sessionstorage的區別是什麼163、頁面載入速度很慢,如何加速頁面的渲染164、輸入了一個URL之後發生了什麼165、圖片很大,如何進行優化166、手寫二分查找167、畫出TCP三次握手的過程168、websocket是如何實現伺服器端推送的169、你對迅雷了解多少?170、websocket和http的區別是什麼?websocket的優點是什麼?171、為什麼使用websocket? websocket是怎麼連接的,一定需要通過http協議嗎? 短輪詢、commet、長輪訓都介紹一下。各有什麼優缺點。172、聊天室如何兼容IE8173、http1.1中的keep-alive是怎麼理解的?174、setTimeout和setInterval175、原型、原型鏈、繼承等。176、http1.0、http1.1、http2 (這三者還是要會區分的,也會經常被問到)177、css3動畫相關178、html、css、js分別實現一個動畫效果。179、說一下你做過的幾個項目吧。180、框架對比一下181、你在項目中用過 runtime 嗎?舉個例子。182、runtime 中,SEL 和 IMP 的區別183、 MVC 具有什麼樣的優勢,各個模塊之間怎麼通信,比如點擊 Button 後 怎麼通知 Model?184、你在項目中用過 GCD 嗎?舉個例子。185、Category 的實現原理,以及 Category 為什麼只能加方法不能加屬性。186、有沒有自己設計過網路控制項187、block 的原理,block 的屬性修飾詞為什麼用 copy,使用 block 時有哪些要注意的?188、iOS 的熱更新方案有哪些?介紹一下實現原理。189、KVO、Notification、delegate 各自的優缺點,效率還有使用場景190、cookie和session有什麼區別,cookie的大小是多少。191、css3了解多少,說到了漸進增強和優雅降級192、vue接觸過多長時間、react接觸過多長時間、193、你對互聯網公司怎麼看,你想要什麼樣的公司、未來是怎麼樣的。194、樂信你了解多少,你對來深圳工作怎麼看。195、class A 繼承 class B,class B 繼承 NSObject。畫出完整的類圖。196、細緻地講一下事件傳遞流程197、main()之前的過程有哪些?198、Category 中有 load 方法嗎?load 方法是什麼時候調用的?load 方法能繼承嗎?199、講一下你對 iOS 內存管理的理解200、使用 GCD 如何實現這個需求:A、B、C 三個任務並發,完成後執行任務 D。201、你在項目中是怎麼優化內存的?202、講講 RunLoop,項目中有用到嗎?203、列表卡頓的原因可能有哪些?你平時是怎麼優化的?204、項目有沒有做過組件化?或者你是否調研過?205、講一下 OC 的消息機制206、ARC 都幫我們做了什麼?207、如何手動通知 KVO208、c++ new 和 malloc 有什麼區別?209、c++ 可不可以多繼承?210、c++ 引用和指針的區別?211、如何判斷兩個鏈表是否有交點?212、堆區和棧區有什麼區別?為什麼要這麼設計?213、給棧增加一個Max函數介面,返回當前棧的最大值,應該如何設計?214、給定排好序的整數數組array[]以及整數n,如何找出和為n的兩個數?215、如果沒排好序呢?216、一個字元串,如何找出只出現一次並且最先出現的字元?217、反轉字元串218、判斷整數是否為

219、一個m*n的棋盤,有些格子不能走,如何找到左上角到右下角的最短路徑?220、iOS 按下 Home 鍵之後會發生什麼?221、c++中內存分配是怎樣的?222、c++中常用的容器有哪些?223、queue和vector有什麼區別?224、vector底層是怎麼實現的?225、TCP三次握手?為什麼兩次不行?226、項目中有沒有伺服器push機制?227、兩個無限長度鏈表(也就是可能有環) 判斷有沒有交點228、實現 isEqual 和 hash 方法時要注意什麼?229、block 為什麼會有循環引用230、如何設計圖片緩存?231、CoreData 的使用,如何處理多線程問題232、property 的常用修飾詞有哪些?weak 和 assign 的區別?weak 的實現原理是什麼?233、線程安全的處理手段有哪些?把你想到的都說一下。234、說一下 OperationQueue 和 GCD 的區別,以及各自的優勢235、Swift 中 struct 和 class 的區別236、Swift 是如何實現多態的?237、Swift 和 OC,各自的優缺點有哪些?238、如果讓你實現 NSNotificationCenter,講一下思路240、如果讓你實現 GCD 的線程池,講一下思路241、為什麼是三次握手?為什麼是四次揮手?三次揮手不行嗎?242、講一下 HTTPS 密鑰傳輸流程243、UITableView 的相關優化244、講講 MVC、MVVM、MVP,以及你在項目里具體是怎麼寫的?245、iOS 系統框架里使用了哪些設計模式?至少說6個。246、你自己用過哪些設計模式?247、NSOperation 和 GCD 的區別248、Objective-C 中的 copy 方法249、 autoreleasepool 的使用場景和原理250、哪一個項目技術點最能體現自己的技術實力?具體講一下。266、你在項目中遇到的最大的問題是什麼?你是怎麼解決的?267、用 Alamofire 比直接使用 URLSession,優勢是什麼?268、你是如何學習 iOS 的?269、和產品經理、測試產生衝突時,你是怎麼解決的?270、手寫一下快排271、遍歷一個樹,要求不能用遞歸272、RunLoop 的實現原理和數據結構,什麼時候會用到273、找出兩個字元串的最大公共子字元串274、假設ViewController中需要用一個Blcok來改變ViewController中的一個屬性,需要怎麼實現?275、這樣實現之後,這個Block在內存中被存在何處?引用關係又是怎麼樣的?276、函數中的閉包,如果要求閉包執行完後立刻改變函數中某個變數的值,應該如何實現?277、如何實現一個類似於微信聊天界面的布局?278、如何用Auto Layout實現一個如下要求的布局: %&@$@(#!...... (說了一大堆 =。= 反正就是使用優先順序就解決了)279、說一說 MVC 和 MVVM 的區別,以及各自的優缺點。280、如何將 MVC 改造成 MVVM ?在MVVM中,網路請求、緩存處理的部分應該放在哪個模塊?281、為什麼說Swift是面向協議的語言?使用 Protocol 有什麼好處282、比較一下 Swift 和 Objective-C 在語言層面上的安全性?283、如果ViewController中使用閉包時,用weak避免循環引用,會有什麼問題?284、當點擊一個View時,發生了什麼?如何擴大點擊區域?285、如何對TableView進行優化?286、能講一講你對光柵化的理解嗎?287、對Swift和OC有什麼看法?288、能對Swif中的可選類型談下你的理解嗎?289、說一下快排的偽代碼和時間複雜度?290、怎麼判斷兩個鏈表是否相交?291、怎麼反轉二叉樹?292、了解元組嗎?293、了解多線程嗎?294、什麼是並行?295、現在有ABC三個任務,如何實現AB完成後再執行C?296、對 Runtime 有什麼了解?297、HTTP 和 HTTPS 有什麼區別?298、知道 HTTPS 通信過程嗎?299、Struct 和 Class 有什麼區別?300、為什麼要設計Cache?Cache分級有什麼好處?301、如何保證多核數據的一致性?

編輯作者:Silence_廣

這些都弄懂了,相信offer已到你的郵箱了!

另外我附上一份pdf的面試題大全,以及收集的各大廠面試題 ! 要的加iOS高級:點擊:[加入](正在跳轉),面試題文件可以直接獲取

如下圖所示:

iOS面試題大全

iOS面試題大全

iOS面試題合集
推薦閱讀:
相关文章