【乾貨分享】前端面試知識點錦集04(Others篇)——附答案

来源:http://www.cnblogs.com/SeeYouBug/archive/2016/12/24/6200862.html
-Advertisement-
Play Games

四、Others部分、技術類1、http狀態碼有哪些?分別代表是什麼意思?2、說說創建ajax的過程3、一個頁面從輸入 URL 到頁面載入顯示完成,這個過程中都發生了什麼?4、說說你對網站重構的理解?5、網頁驗證碼是幹嘛的,是為瞭解決什麼安全問題。6、請說出三種減少頁面載入時間的方法。7、你有用 ...


四、Others部分

技術類

1、http狀態碼有哪些?分別代表是什麼意思?

(1)、成功2×× 成功處理了請求的狀態碼。
200 伺服器已成功處理了請求並提供了請求的網頁。
204 伺服器成功處理了請求,但沒有返回任何內容。
(2)、重定向3×× 每次請求中使用重定向不要超過 5 次。
301 請求的網頁已永久移動到新位置。當URLs發生變化時,使用301代碼。 搜索引擎索引中保存新的URL。
302 請求的網頁臨時移動到新位置。搜索引擎索引中保存原來的URL。
304 如果網頁自請求者上次請求後沒有更新,則用304代碼告訴搜索引擎機器 人,可節省帶寬和開銷。
(3)、客戶端錯誤4×× 表示請求可能出錯,妨礙了伺服器的處理。
400 伺服器不理解請求的語法。
403 伺服器拒絕請求。
404 伺服器找不到請求的網頁。伺服器上不存在的網頁經常會返回此代碼。
410 請求的資源永久刪除後,伺服器返回此響應。該代碼與 404(未找到)代碼相似,但在資源以前存在而現在不存在的情況下,有時用來替代404 代碼。如果資源已永久刪除,應當使用 301 指定資源的新位置。
(4)、伺服器錯誤5×× 表示伺服器在處理請求時發生內部錯誤。這些錯誤可能是伺服器本身的錯誤,而不是請求出錯。
500 伺服器遇到錯誤,無法完成請求。
503 伺服器目前無法使用(由於超載或停機維護)。通常,這隻是暫時狀態。

2、說說創建ajax的過程

(1)、創建XMLHttpRequest對象,也就是創建一個非同步調用對象.
(2)、創建一個新的HTTP請求,並指定該HTTP請求的方法、URL及驗證信息.
(3)、設置響應HTTP請求狀態變化的函數.
(4)、發送HTTP請求.
(5)、獲取非同步調用返回的數據.
(6)、使用JavaScript和DOM實現局部刷新.

3、一個頁面從輸入 URL 到頁面載入顯示完成,這個過程中都發生了什麼?

分為4個步驟:
(1)、當發送一個URL請求時,不管這個URL是Web頁面的URL還是Web頁面上每個資源的URL,瀏覽器都會開啟一個線程來處理這個請求,同時在遠程DNS伺服器上啟動一個DNS查詢。這能使瀏覽器獲得請求對應的IP地址。
(2)、瀏覽器與遠程Web伺服器通過TCP三次握手協商來建立一個TCP/IP連接。該握手包括一個同步報文,一個同步-應答報文和一個應答報文,這三個報文在 瀏覽器和伺服器之間傳遞。該握手首先由客戶端嘗試建立起通信,而後伺服器應答並接受客戶端的請求,最後由客戶端發出該請求已經被接受的報文。
(3)、一旦TCP/IP連接建立,瀏覽器會通過該連接向遠程伺服器發送HTTP的GET請求。遠程伺服器找到資源並使用HTTP響應返回該資源,值為200的HTTP響應狀態表示一個正確的響應。
(4)、此時,Web伺服器提供資源服務,客戶端開始下載資源。

4、說說你對網站重構的理解?

網站重構:在不改變外部行為的前提下,簡化結構、添加可讀性,而在網站前端保持一致的行為。也就是說是在不改變UI的情況下,對網站進行優化,在擴展的同時保持一致的UI。
對於傳統的網站來說重構通常是:
(1)、表格(table)佈局改為DIV+CSS
(2)、使網站前端相容於現代瀏覽器(針對於不合規範的CSS、如對IE6有效的)
(3)、對於移動平臺的優化
(4)、針對於SEO進行優化
(5)、深層次的網站重構應該考慮的方面
(6)、減少代碼間的耦合
(7)、讓代碼保持彈性
(8)、嚴格按規範編寫代碼
(9)、設計可擴展的API
(10)、代替舊有的框架、語言(如VB)
(11)、增強用戶體驗
(12)、通常來說對於速度的優化也包含在重構中
(13)、壓縮JS、CSS、image等前端資源(通常是由伺服器來解決)
(14)、程式的性能優化(如數據讀寫)
(15)、採用CDN來加速資源載入
(16)、對於JS DOM的優化
(17)、HTTP伺服器的文件緩存

5、網頁驗證碼是幹嘛的,是為瞭解決什麼安全問題。

a、區分用戶是電腦還是人的公共全自動程式。可以防止惡意破解密碼、刷票、論壇灌水;
b、有效防止黑客對某一個特定註冊用戶用特定程式暴力破解方式進行不斷的登陸嘗試。

6、請說出三種減少頁面載入時間的方法。

(1)、優化圖片
(2)、圖像格式的選擇(GIF:提供的顏色較少,可用在一些對顏色要求不高的地方)
(3)、優化CSS(壓縮合併css,如margin-top,margin-left...)
(4)、網址後加斜杠(如www.campr.com/目錄,會判斷這個“目錄是什麼文件類型,或者是目錄。)
(5)、標明高度和寬度(如果瀏覽器沒有找到這兩個參數,它需要一邊下載圖片一邊計算大小,如果圖片很多,瀏覽器需要不斷地調整頁面。這不但影響速度,也影響瀏覽體驗。 當瀏覽器知道了高度和寬度參數後,即使圖片暫時無法顯示,頁面上也會騰出圖片的空位,然後繼續載入後面的內容。從而載入時間快了,瀏覽體驗也更好了。)
(6)、減少http請求(合併文件,合併圖片)。

7、你有用過哪些前端性能優化的方案?

(1)、提升頁面靜態資源載入速度
a、減少http請求
b、壓縮靜態資源文件大小,減少文件體積大小
(2)、加快頁面的渲染展示速度
a、css和js文件的位置
b、規範img標簽的使用
c、精簡頁面標簽,減少dom元素
d、規範css代碼

8、說說什麼是SQL註入?如何防止SQL註入?

就是通過把`SQL`命令插入到`Web`表單遞交或輸入功能變數名稱或頁面請求的查詢字元串,最終達到欺騙伺服器執行惡意的SQL命令。
總的來說有以下幾點:
a、永遠不要信任用戶的輸入,要對用戶的輸入進行校驗,可以通過正則表達式,或限制長度,對單引號和雙"-"進行轉換等。
b、永遠不要使用動態拼裝SQL,可以使用參數化的SQL或者直接使用存儲過程進行數據查詢存取。
c、永遠不要使用管理員許可權的資料庫連接,為每個應用使用單獨的許可權有限的資料庫連接。
d、不要把機密信息明文存放,請加密或者hash掉密碼和敏感的信息。

9、說說XSS的原理及防範?

XXS原理
Xss(cross-site scripting)攻擊指的是攻擊者往Web頁面里插入惡意`html`標簽或者javascript代碼。比如:攻擊者在論壇中放一個
看似安全的鏈接,騙取用戶點擊後,竊取cookie中的用戶私密信息;或者攻擊者在論壇中加一個惡意表單,
當用戶提交表單的時候,卻把信息傳送到攻擊者的伺服器中,而不是用戶原本以為的信任站點。
XSS防範方法
(1)、代碼里對用戶輸入的地方和變數都需要仔細檢查長度和對"<"、"">"、";"、"’"等字元做過濾;其次任何內容寫到頁面之前都必須加以`encode`,避免不小心把`html tag 弄出來。這一個層面做好,至少可以堵住超過一半的XSS攻擊。
(2)、避免直接在cookie`中泄露用戶隱私,例如email、密碼等等。
(3)、通過使cookie和系統ip 綁定來降低cookie 。泄露後的危險。這樣攻擊者得到的cookie沒有實際價值,不可能拿來重放。
(4)、儘量採用POST而非GET提交表單

10、XSS與CSRF有什麼區別嗎?如何做到CSRF的防禦?

XSS是獲取信息,不需要提前知道其他用戶頁面的代碼和數據包。CSRF是代替用戶完成指定的動作,需要知道其他用戶頁面的代碼和數據包。
要完成一次CSRF攻擊,受害者必須依次完成兩個步驟:
a、登錄受信任網站A,併在本地生成Cookie。
b、在不登出A的情況下,訪問危險網站B。
CSRF的防禦
a、服務端的CSRF方式方法很多樣,但總的思想都是一致的,就是在客戶端頁面增加偽隨機數。
b、使用驗證碼

11、什麼是 "use strict"? 使用它的好處和壞處分別是什麼?

ECMAscript 5添加了第二種運行模式:"嚴格模式"(strict mode)。顧名思義,這種模式使得`Javascript`在更嚴格的條件下運行。
設立"嚴格模式"的目的,主要有以下幾個:
- 消除Javascript語法的一些不合理、不嚴謹之處,減少一些怪異行為;
- 消除代碼運行的一些不安全之處,保證代碼運行的安全;
- 提高編譯器效率,增加運行速度;
- 為未來新版本的Javascript做好鋪墊。
註:經過測試`IE6,7,8,9`均不支持嚴格模式。
缺點:
現在網站的`JS` 都會進行壓縮,一些文件用了嚴格模式,而另一些沒有。這時這些本來是嚴格模式的文件,被merge 後,這個串就到了文件的中間,不僅沒有指示嚴格模式,反而在壓縮後浪費了位元組。

12、eval是做什麼的?

它的功能是把對應的字元串解析成JS代碼並運行;
應該避免使用eval,不安全,非常耗性能(2次,一次解析成js語句,一次執行)。

13、說說使用AJax有哪些好處和有哪些壞處?

ajax的優點
a、通過非同步模式,提升了用戶體驗
b、優化了瀏覽器和伺服器之間的傳輸,減少不必要的數據往返,減少了帶寬占用
c、Ajax在客戶端運行,承擔了一部分本來由伺服器承擔的工作,減少了大用戶量下的伺服器負載。
d、Ajax的最大的特點
Ajax可以實現動態不刷新(局部刷新)
readyState屬性 狀態 有5個可取值: 0=未初始化 ,1=啟動 2=發送,3=接收,4=完成
ajax的缺點
a、ajax不支持瀏覽器back按鈕。
b、安全問題 AJAX暴露了與伺服器交互的細節。
c、對搜索引擎的支持比較弱。
d、破壞了程式的異常機制。
e、不容易調試。

14、說說TCP傳輸的三次握手策略?

a、為了準確無誤地把數據送達目標處,TCP協議採用了三次握手策略。用TCP協議把數據包送出去後,TCP不會對傳送 後的情況置之不理,它一定會向對方確認是否成功送達。握手過程中使用了TCP的標誌:SYN和ACK。
b、發送端首先發送一個帶SYN標誌的數據包給對方。接收端收到後,回傳一個帶有SYN/ACK標誌的數據包以示傳達確認信息。最後,發送端再回傳一個帶ACK標誌的數據包,代表“握手”結束
c、若在握手過程中某個階段莫名中斷,TCP協議會再次以相同的順序發送相同的數據包。

15、談談你對性能優化問題的理解?

代碼層面:避免使用css表達式,避免使用高級選擇器,通配選擇器。
緩存利用:緩存Ajax,使用CDN,使用外部js和css文件以便緩存,添加Expires頭,服務端配置Etag,減少DNS查找等
請求數量:合併樣式和腳本,使用css圖片精靈,初始首屏之外的圖片資源按需載入,靜態資源延遲載入。
請求帶寬:壓縮文件,開啟GZIP

16、HTTP request報文結構是怎樣的?

(1)、請求報文介紹一個HTTP請求報文由請求行(request line)、請求頭部(header)、空行和請求數據4個部分組成。

下圖給出了請求報文的一般格式。

a、請求行
請求行由請求方法欄位、URL欄位和HTTP協議版本欄位3個欄位組成,它們用空格分隔。例如,GET /index.html
HTTP/1.1。
HTTP協議的請求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。這裡介紹最常用的GET方法和POST方法。
GET:當客戶端要從伺服器中讀取文檔時,使用GET方法。GET方法要求伺服器將URL定位的資源放在響應報文的數據部分,回送給客戶端。使用GET方法時,請求參數和對應的值附加在URL後面,利用一個問號(“?”)代表URL的結尾與請求參數的開始,傳遞參數長度受限制。例如,/index.jsp?id=100&op=bind。
POST:當客戶端給伺服器提供信息較多時可以使用POST方法。POST方法將請求參數封裝在HTTP請求數據中,以名稱/值的形式出現,可以傳輸大量數據。
b、請求頭部
請求頭部由關鍵字/值對組成,每行一對,關鍵字和值用英文冒號“:”分隔。請求頭部通知伺服器有關於客戶端請求的信息,典型的請求頭有:
User-Agent:產生請求的瀏覽器類型。
Accept:客戶端可識別的內容類型列表。
Host:請求的主機名,允許多個功能變數名稱同處一個IP地址,即虛擬主機。
c、空行
最後一個請求頭之後是一個空行,發送回車符和換行符,通知伺服器以下不再有請求頭。
d、請求數據
請求數據不在GET方法中使用,而是在POST方法中使用。POST方法適用於需要客戶填寫表單的場合。與請求數據相關的最常使用的請求頭是Content-Type和Content-Length。
(2)詳細解說
HTTP請求由三部分組成,分別是:請求行、消息報頭、請求正文。
請求行以一個方法符號開頭,以空格分開,後面跟著請求的URI和協議的版本,格式如下:
Method Request-URI HTTP-Version CRLF。
其中 Method表示請求方法;Request-URI是一個統一資源標識符;HTTP-Version表示請求的HTTP協議版本;CRLF表示回車和換行(除了作為結尾的CRLF外,不允許出現單獨的CR或LF字元)。
請求方法(所有方法全為大寫)有多種,各個方法的解釋如下。
GET:請求獲取Request-URI所標識的資源。
POST:在Request-URI所標識的資源後附加新的數據。
HEAD:請求獲取由Request-URI所標識的資源的響應消息報頭。
PUT:請求伺服器存儲一個資源,並用Request-URI作為其標識。
Delete:請求伺服器刪除Request-URI所標識的資源。
TRACE:請求伺服器回送收到的請求信息,主要用於測試或診斷。
CONNECT:保留將來使用。
OPTIONS:請求查詢伺服器的性能,或者查詢與資源相關的選項和需求。
方法名稱是區分大小寫的。當某個請求所針對的資源不支持對應的請求方法的時候,伺服器應當返回狀態碼405(Method Not Allowed);當伺服器不認識或者不支持對應的請求方法的時候,應當返回狀態碼501(Not Implemented)。HTTP伺服器至少應該實現GET和HEAD方法,其他方法都是可選的。當然,所有的方法支持的實現都應當符合下述方法各自的語義定義。此外,除了上述方法,特定的HTTP伺服器還能夠擴展自定義的方法。
(3)、HTTP響應報文
HTTP響應也由三個部分組成,分別是:狀態行、消息報頭、響應正文。
狀態行格式如下:
HTTP-Version Status-Code Reason-Phrase CRLF
其中,HTTP-Version表示伺服器HTTP協議的版本;Status-Code表示伺服器發回的響應狀態代碼;Reason-Phrase表示狀態代碼的文本描述。狀態代碼由三位數字組成,第一個數字定義了響應的類別,且有五種可能取值。
1xx:指示信息--表示請求已接收,繼續處理。
2xx:成功--表示請求已被成功接收、理解、接受。
3xx:重定向--要完成請求必須進行更進一步的操作。
4xx:客戶端錯誤--請求有語法錯誤或請求無法實現。
5xx:伺服器端錯誤--伺服器未能實現合法的請求。
常見狀態代碼、狀態描述的說明如下。
200 OK:客戶端請求成功。
400 Bad Request:客戶端請求有語法錯誤,不能被伺服器所理解。
401 Unauthorized:請求未經授權,這個狀態代碼必須和WWW-Authenticate報頭域一起使用。
403 Forbidden:伺服器收到請求,但是拒絕提供服務。
404 Not Found:請求資源不存在,舉個例子:輸入了錯誤的URL。
500 Internal Server Error:伺服器發生不可預期的錯誤。
503 Server Unavailable:伺服器當前不能處理客戶端的請求,一段時間後可能恢復正常,舉個例子:HTTP/1.1 200
OK(CRLF)。

17、說說網站前端網頁優化的14條原則是什麼?

(1)、減少HTTP請求次數
(3)、使用CDN(Content Delivery Network,內容分髮網絡)
(3)、增加Expires Header
(4)、壓縮頁面元素
(5)、把樣式表放在頭上
(6)、把腳本文件放在底部
(7)、避免CSS表達式
(8)、把JavaScript和CSS放到外部文件中
(9)、減少DNS查詢次數
(10)、最小化JavaScript代碼
(11)、避免重定向
(12)、刪除重覆的腳本文件
(13)、配置ETags
(14)、緩存Ajax

18、說說你對MVC的理解?

(1)、概念
MVC是三個單詞的縮寫,分別為: 模型(Model),視圖(View) 和控制Controller)。 MVC模式的目的就是實現Web系統的職能分工。 Model層實現系統中的業務邏輯,通常可以用JavaBean或EJB來實現。 View層用於與用戶的交互,通常用JSP來實現。 Controller層是Model與View之間溝通的橋梁,它可以分派用戶的請求並選擇恰當的視圖以用於顯示,同時它也可以解釋用戶的輸入並將它們映 射為模型層可執行的操作。

(2)、MVC如何工作
MVC是一個設計模式,它強制性的使應用程式的輸入、處理和輸出分開。使用MVC應用程式被分成三個核心部件:模型、視圖、控制器。它們各自處理自己的任務。
a、視圖
視圖是用戶看到並與之交互的界面。對老式的Web應用程式來說,視圖就是由HTML元素組成的界面,在新式的Web應用程式中,HTML依舊在視圖中扮 演著重要的角色,但一些新的技術已層出不窮,它們包括Macromedia Flash和象XHTML,XML/XSL,WML等一些標識語言和Web services.   如何處理應用程式的界面變得越來越有挑戰性。MVC一個大的好處是它能為你的應用程式處理很多不同的視圖。在視圖中其實沒有真正的處理髮生,不管這些數據是聯機存儲的還是一個雇員列表,作為視圖來講,它只是作為一種輸出數據並允許用戶操縱的方式。
b、模型
模型表示企業數據和業務規則。在MVC的三個部件中,模型擁有最多的處理任務。例如它可能用象EJBs和ColdFusion Components這樣的構件對象來處理資料庫。被模型返回的數據是中立的,就是說模型與數據格式無關,這樣一個模型能為多個視圖提供數據。由於應用於模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重覆性。
c、控制器
控制器接受用戶的輸入並調用模型和視圖去完成用戶的需求。所以當單擊Web頁面中的超鏈接和發送HTML表單時,控制器本身不輸出任何東西和做任何處理。它只是接收請求並決定調用哪個模型構件去處理請求,然後再確定用哪個視圖來顯示返回的數據。

(3)、MVC的優點
a、低耦合性
b、高重用性和可適用性
c、較低的生命周期成本
d、快速的部署
e、可維護性
f、有利於軟體工程化管理
(4)、MVC的缺點
a、由於它沒有明確的定義,所以完全理解MVC並不是很容易。使用MVC需要精心的計劃,由於它的內部原理比較複雜,所以需要花費一些時間去思考。   
b、你將不得不花費相當可觀的時間去考慮如何將MVC運用到你的應用程式,同時由於模型和視圖要嚴格的分離,這樣也給調試應用程式帶來了一定的困難。每個構件在使用之前都需要經過徹底的測試。一旦你的構件經過了測試,你就可以毫無顧忌的重用它們了。   
c、根據開發者經驗,由於開發者將一個應用程式分成了三個部件,所以使用MVC同時也意味著你將要管理比以前更多的文件,這一點是顯而易見的。這樣好像我們的工作量增加了,但是請記住這比起它所能帶給我們的好處是不值一提。   MVC並不適合小型甚至中等規模的應用程式,花費大量時間將MVC應用到規模並不是很大的應用程式通常會得不償失。   
d、MVC設計模式是一個很好創建軟體的 途徑,它所提倡的一些原則,像內容和顯示互相分離可能比較好理解。但是如果你要隔離模型、視圖和控制器的構件,你可能需要重新思考你的應用程式,尤其是應 用程式的構架方面。如果你肯接受MVC,並且有能力應付它所帶來的額外的工作和複雜性,MVC將會使你的軟體在健壯性,代碼重用和結構方面上一個新的台 階。

19、如果網頁內容需要支持多語言,你會怎麼做?

解答方向:在設計和開發多語言網站時,有哪些問題你必須要考慮

編碼使用UTF-8,空間功能變數名稱需要支持多瀏覽地址,準備多套模板。
在設計和開發多語言網站時,需要考慮
- 應用字元集的選擇
- 語言書寫習慣&導航結構
- 資料庫驅動型網站
- css 盒子會因為內容尺寸不一樣出現不對齊偏移

20、如何優化網頁的列印樣式?

<link rel="stylesheet" type="text/css" media="screen" href="xxx.css" />

其中media指定的屬性就是設備,顯示器上就是screen,印表機則是print,電視是tv,投影儀是projection。

<link rel="stylesheet" type="text/css" media="print" href="yyy.css" />

但列印樣式表也應有些註意事項:
a、列印樣式表中最好不要用背景圖片,因為印表機不能列印CSS中的背景。如要顯示圖片,請使用html插入到頁面中。
b、最好不要使用像素作為單位,因為列印樣式表要列印出來的會是實物,所以建議使用pt和cm。
c、隱藏掉不必要的內容。(`@print div{display:none;}`)
d、列印樣式表中最好少用浮動屬性,因為它們會消失。
如果想要知道列印樣式表的效果如何,直接在瀏覽器上選擇列印預覽就可以了。

21、說說你對哈希表的認識?

散列表(Hash table,也叫哈希表),是根據關鍵碼值(Key value)而直接進行訪問的數據結構。也就是說,它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。這個映射函數叫做散列函數,存放記錄的數組叫做散列表。
給定表M,存在函數f(key),對任意給定的關鍵字值key,代入函數後若能得到包含該關鍵字的記錄在表中的地址,則稱表M為哈希(Hash)表,函數f(key)為哈希(Hash) 函數。
a、若關鍵字為k,則其值存放在f(k)的存儲位置上。由此,不需比較便可直接取得所查記錄。稱這個對應關係f為散列函數,按這個思想建立的表為散列表。
b、對不同的關鍵字可能得到同一散列地址,即k1≠k2,而f(k1)=f(k2),這種現象稱為碰撞(英語:Collision)。具有相同函數值的關鍵字對該散列函數來說稱做同義詞。綜上所述,根據散列函數f(k)和處理碰撞的方法將一組關鍵字映射到一個有限的連續的地址集(區間)上,並以關鍵字在地址集中的“像”作為記錄在表中的存儲位置,這種表便稱為散列表,這一映射過程稱為散列造表或散列,所得的存儲位置稱散列地址。
c、若對於關鍵字集合中的任一個關鍵字,經散列函數映象到地址集合中任何一個地址的概率是相等的,則稱此類散列函數為均勻散列函數(Uniform Hash function),這就是使關鍵字經過散列函數得到一個“隨機的地址”,從而減少碰撞。

22、什麼是Etag?

瀏覽器下載組件的時候,會將它們存儲到瀏覽器緩存中。如果需要再次獲取相同的組件,瀏覽器將檢查組件的緩存時間,假如已經過期,那麼瀏覽器將發送一個條件GET請求到伺服器,伺服器判斷緩存還有效,則發送一個304響應,告訴瀏覽器可以重用緩存組件。
那麼伺服器是根據什麼判斷緩存是否還有效呢?答案有兩種方式,一種是前面提到的ETag,另一種是根據Last-Modified。

23、說說棧和隊列的區別?

a、棧的插入和刪除操作都是在一端進行的,而隊列的操作卻是在兩端進行的。
隊列先進先出,棧先進後出。
b、棧只允許在表尾一端進行插入和刪除,而隊列只允許在表尾一端進行插入,在表頭一端進行刪除

24、說說棧和堆的區別?

棧區(stack)由編譯器自動分配釋放 ,存放函數的參數值,局部變數的值等。
堆區(heap) 一般由程式員分配釋放, 若程式員不釋放,程式結束時可能由OS回收。
堆(數據結構):堆可以被看成是一棵樹,如:堆排序;
棧(數據結構):一種先進後出的數據結構。

25、關於Http 2.0 你知道多少?

HTTP/2引入了"服務端推(serverpush)"的概念,它允許服務端在客戶端需要數據之前就主動地將數據發送到客戶端緩存中,從而提高性能。
HTTP/2提供更多的加密支持
HTTP/2使用多路技術,允許多個消息在一個連接上同時交差。
它增加了頭壓縮(header compression),因此即使非常小的請求,其請求和響應的header都只會占用很小比例的帶寬。

非技術類

1、對前端界面工程師這個職位是怎樣理解的?它的前景會怎麼樣?

前端是最貼近用戶的程式員,比後端、資料庫、產品經理、運營、安全都近。
理解:
(1)、實現界面交互
(2)、提升用戶體驗
(3)、有了Node.js,前端可以實現服務端的一些事情
(4)、參與項目,快速高質量完成實現效果圖,精確到1px;
(5)、與團隊成員,UI設計,產品經理的溝通;
(6)、做好的頁面結構,頁面重構和用戶體驗;
(7)、處理hack,相容、寫出優美的代碼格式;
(8)、針對伺服器的優化、擁抱最新前端技術。

前景:
前端是最貼近用戶的程式員,前端的能力就是能讓產品從 90分進化到 100 分,甚至更好,因此的前端工程師這個職位是越來越受歡迎的,前端的前景也會也來越來好。

2、如果通過這次面試我們錄用了你,但工作一段時間卻發現你根本不適合這個職位,你怎麼辦?

回答提示:一段時間發現工作不適合我,有兩種情況:
1、如果你確實熱愛這個職業,那你就要不斷學習,虛心向領導和同事學習業務知識和處事經驗,瞭解這個職業的精神內涵和職業要求,力爭減少差距;
2、你覺得這個職業可有可無,那還是趁早換個職業,去發現適合你的,你熱愛的職業,那樣你的發展前途也會大點,對單位和個人都有好處。

3、如果讓你招聘一位新員工,你絕得你會最看重對方哪方面的資源?

答 : 最看重招聘的人對現有團隊產生的影響是積極的還是消極的。希望招的人能彌補現有團隊的不足或者讓團隊變得更強大,不希望招的人同團隊格格不入影響團隊的創業氛圍。

4、平時如何管理你的項目?

a、先期團隊必須確定好全局樣式(globe.css),編碼模式(utf-8) 等;
b、編寫習慣必須一致(例如都是採用繼承式的寫法,單樣式都寫成一行);
c、標註樣式編寫人,各模塊都及時標註(標註關鍵樣式調用的地方);
d、頁面進行標註(例如 頁面 模塊 開始和結束);
e、CSS跟HTML 分文件夾並行存放,命名都得統一(例如style.css);
f、JS 分文件夾存放 命名以該JS功能為準的英文翻譯。
g、圖片採用整合的 images.png png8 格式文件使用 h、儘量整合在一起使用方便將來的管理

5、說說你在未來的工作中處理事情的態度是什麼?

一次只處理一件事情,專註於一件事,效率和質量都有保障。所以同時做超過一件事,看上去效率高,實際上可能需要返工或做修補工作,從一個長期來看,不如一次只做一件事的效率高,質量有保障。

6、你有什麼愛好啊?有空的時候喜歡做什麼?

問題分析: 面試官詢問申請人的業餘愛好, 其一是為了製造和諧氣氛, 其二是想通過申請人的喜好判斷一下他的個性。
普通回答: 我特別喜歡打籃球, 因為打籃球能夠培養一種團隊精神。
點評: 這明顯是一個“失真”的回答。一個人喜歡打籃球, 絕對不是為了鍛煉團隊精神!如果對一個簡單的問題進行“上綱上線”式的回答, 面試官會覺得這個申請人不夠真誠。
回答示範1: 我非常喜歡游泳, 原來基本上每天都游, 現在找工作時間比較緊, 一個星期只能游幾次了。
點評: 這是一個非常真實的回答, 申請人的口氣也比較放鬆。不過, 吹毛求疵地說, 大家一定會更喜歡以下的兩個示範性回答。
回答示範2: 我的愛好還挺多的, 小時候爸媽逼著拉琴, 過了八級, 不過上大學以後不常拉琴了, 喜歡群體活動, 踢足球!我技術比較臭, 只能打後衛, 有時候連後衛都打不上, 就去守大門。幸好大門的位置經常是為我敞開的, 呵呵.
點評2: 這是個聽起來讓人會心一笑的答案, 很誠實, 很可愛。申請人在準備面試的時候, 不妨多設計一些此類略帶幽默色彩的答案, 它們會讓面試官更加喜歡你。
回答示範3: 說實話, 我沒有一個特別明顯的愛好, 有朋友來的時候去打打保齡唱唱K, 一個人的時候看看電視、 在網上聊聊天什麼的。平時工作特別忙, 很難發展一個特別的愛好, 呵呵。
點評3: 真誠的溝通, 能夠迅速引起面試官的共鳴, 很可能面試官也在過著一模一樣的忙碌生活。而且, 這樣的回答也暗示了一些積極的因素: 隨和的個性、 習慣於繁忙的工作。

7、請給我們談談你自己的一些情況?

回答:簡要的描述你的相關工作經歷以及你的一些特征,包括與人相處的能力和個人的性格特征。如果你一下子不能夠確定面試者到底需要什麼樣的內容,你可以這樣說:“有沒有什麼您特別感興趣的範圍?”
點評:企業以此來判斷是否應該聘用你。通過你的談論,可以看出你想的是如何為公司效力還是那些會影響工作的個人問題。當然,還可以知道你的一些背景。

8、請談一下你對公司的看法,為什麼你想來公司工作?

回答:可根據你先前對該公司的情報收集,敘述一下你對公司的瞭解。適當的對公司的聲譽、產品和發展情況予以贊美。還可以提提你為了瞭解公司的情況所做的努力然後就說你非常喜歡這個工作,而且你的能力也非常適合併能勝任這份工作。
點評:此問目的測試一下你對公司的瞭解和喜歡的程度,看看你的能力是否符合公司的要求和方向。看看你是真正地願意為公司效力,還是僅僅衝著公司的福利、聲望和工作的穩定。

9、你認為對你來說現在找一份工作是不是不太容易,或者你很需要這份工作?

回答:
a、是的。
b、我看不見得。
點評:
一般按a回答,一切便大功告成。
有些同學為了顯示自己的“不卑不亢“,強調個人尊嚴,故按2回答。結果,用人單位打消了錄用該生的念頭,理由是:“此人比較傲“一句話,斷送了該生一次較好的就業機會。

10、請你談談對我單位的看法?

回答:我對貴單位還沒什麼瞭解,故談不出看法
點評:象這樣的回答,一般面試不成功多,如你很想進入該單位,就不妨實地去單位“偵察”一番,或收集有關的資料。如有一位畢業生,他有意去國家進出口銀行工作,便通過朋友的關係弄到了一本進出口銀行的基本業務材料,從而在面試中對答如流,贏得了招聘單位的賞識。並能以自身的優勢來說明為何應聘這工作,做到有的防矢,給主考官留下了深刻的印象。因此,收集資料,瞭解單位,可以幫助求職者認清主要方向,更精確,更客觀地審視主聘單位,選擇適合自己發展的單位,避免走彎路。

11、以你的資歷條件,完全可以到大公司任職,你怎麼想到我們小企業?

回答:
a、哎,沒辦法,一時沒有應聘到大企業,況且,畢業時間又到了,否則只能回當地就業,因此先就業再說。
b、小企業有他自己的優勢,在用人方面非常重視,自己雖然資歷條件尚可,我想,在你們這樣的企業更能發揮自己的作用。
點評:一個還未工作就想以後跳槽的員工,是無論如何不能指望他盡心儘力的乾好工作的,因此,即使有此想法,也不能說出來,說不定工作後受到企業重用,本人的作用也發揮的特別好,而不想再走了呢?

12、你為什麼希望到我們公司工作?

回答:我覺得貴公司力量雄厚,領導得力,上下一心,適於一切有才幹的人發展。
忌:“我是學電子的,我到這裡才是專業對口。”看情況而定。
  “我來這裡上班離家近。”
  “我喜歡你們這兒。”
  “聽說你們公司月薪較高。”
點評:回答問題要從對方入題,引起對方好感,使對方感到你能尊重,關心公司的需要,願為公司盡微薄之力。

13、如果本公司錄用你,你最希望在哪個部門工作?

回答:
忌:“到哪個部門都行”
應:“本人希望到XX部門,但也很樂意接受公司的其他安排。
點評:不要說得太隨意,太肯定。比較穩妥的辦法是首先表明自己的志向和興趣,再表示服從安排。

14、你願意被外派工作嗎?你願意經常出差嗎?

回答:願意,反正我無牽無掛,到哪兒工作都可以。
點評:這是主試者通過提問來透露他要找的是什麼樣的人,此信息已經很明白地告訴你,他所期待的回答是什麼。對於此類問題應聘者留意傾聽。從“話中之話”中找出應試者實際需要的線索。

15、我怎樣相信對這個職位你是最好的人選呢?

回答:根據這個職位的性質和我們剛纔的談話,我推斷你需要的是工作積極的人,能夠設定目標,不懼怕挑戰的人。我就具有這些品質,讓我再告訴你一些我在校時的經歷,它們能說明我確實是你所需要的最好的人選。
點評:設身處地替面試官想一想,考慮一下招聘者需要什麼樣的人,你又在哪些方面符合他們的要求。根據要求,談出自己應聘的優勢。

16、你對我們公司有多少瞭解?

回答:
a、完全不瞭解。
b、因為對貴公司有關方面相當有興趣,所以才來應聘.
點評:若回答a那就沒有必要再說下去了,但錄用的機會也就小了。最好的回答是b,這是公司想測試應聘者對公司的興趣,關註程度,以後進公司工作的意願的問題,因此,最好要稍稍記住公司的簡介內容和招聘人事廣告內容。

17、你談談選擇這份工作的動機?

回答:“這個職位剛好是我的專業對口,能把學的書本知識在實踐中更好地應用。”
“我雖然學的專業與這職位有區別,但我對這方面的能力較強,相信自己能幹好這份工作。
點評:這是測試面試者對這份工作的理解程度及熱忱,並篩選因一時興起而來應聘的人。

18、你家在外地,我們單位無住宿,你如何看待呢?

回答:家在外地,貴單位無住宿條件,這些都不影響我來應聘貴公司,住宿我可以自己解決,無須單位操心,我看重貴公司的發展前途。
點評:不要因為個人生活上的小問題,而錯失良機。主試者也想看看你對困難的看法,自信心程度。

19、說說最近最流行的一些東西吧?常去哪些網站?

Node.js、Mongodb、npm、MVVM、MEAN、three.js,React ,Angular.js。
網站:w3cfuns,sf,hacknews,CSDN,慕課,博客園,InfoQ,w3cplus等

20、我們不限定固定職位,你認為自己最適合做什麼?

回答:
忌:“公司安排我做什麼就做什麼!”太隨意。
“理想的職位就是有機會讓我一展專長,為公司的發展貢獻自己的學識。”太空。
應:我學的是XX專業,我認為XX職位比較適合我。
點評:主試者問你問題,就是想要一個明確的答案,且明確的回答給人以有思想、有主見、有活力的印象。象上面的回答,是犯了一個錯誤,然而幾乎每個人都會犯同樣的錯誤,他們總是說自己乾什麼都可以。因此,回答這樣的問題,乾脆用自己的心裡話表白,實事求是,至少讓主試者聽起來感到舒服些。

21、你希望從事什麼樣的工作?

回答:根據貴公司的招聘職位,我認為**職位可能比較適合我,有利於我的能力的發揮。當然,其他有些職位也是可做的,人貴在學習。
點評:應試者可以應聘的職位作出大致的設想,讓主試人瞭解自己的抱負與努力方向。由於每個單位都有自己的人事政策,其工作安排未必能完全與求職者的願望相一致,尤其對一個初出茅廬的大學生來說,從基層做起,從小事做起也是應該的。但是,又不能隨便回答:“到哪裡工作都可以。”這讓人覺得像在“乞討工作”,被人看輕。所以要掌握分寸。

22、你為什麼要應聘我們公司?

回答:看了貴公司的廣告及要求,感到自己比較符合公司的招聘條件,另外,對貴公司也有些瞭解,自己若能有幸成為貴公司的一員,是能有助於自己能力的發揮與發展的。
點評:這樣的回答,可顯示出自己積極進取的態度。在談論用人單位時,態度要誠懇、謙和。不論大單位或小單位,都有其優勝和劣勢,應試者應視其實際情況,提出自己的見解,不要牽強附會,如果一味往對方臉上貼金,反而會令人反感。

23、你在以前實習的公司從事什麼樣的工作?

回答:在具體說明對工作的理解程度和熟悉度時,回答要領有三個方面:擔任的工作內容、職務、成績三項。
點評:這個問題可以讓公司知道面試者是否符合所要招聘的職位,以前在其他公司的職位是否重要,來判斷應聘者的發展可能。

24、為何辭去原來的工作?

回答:工作地點離家較遠,路上花費時間多,發生交通問題時,影響工作。貴公司的工作崗位更適合自己專業(個性)的發展。
點評:為了避免應聘者以相同的原因辭職,公司儘量能做到對這方面原因的瞭解,有助於創造一個良好的工作環境和人際氛圍。因此,應聘者最好說出對方能信服的理由。如果自己確有缺點,要說出“將儘量剋服自己缺點”,作為有信心改變這類情況的答覆。

25、請問你有什麼樣的工作觀?

回答:我認為工作是為了實現自己的人生價值,發揮自己的最大潛能,解決自己的生活問題。
點評:此話是問工作在你的生活中意味著什麼?為何而工作?從工作中得到了什麼?幾年後想變成怎樣等。因此,別把它想得太複雜,可根據自己的具體情況回答。

26、你是否可以接受加班?

回答:我願意接受挑戰。在自己責任範圍內的工作,不能算是加班。
點評:這是面試者針對應聘者的工作熱忱而提的問題,因無理的加班不一定是好的。

27、你在學校里學了哪些課程?這些課程對所應聘的工作有些什麼幫助?

回答:回答時只要將所學過的重要課程以及與所應聘的工作崗位有關的課程說出來就行了,不必把每一門課程都羅列出來。可稍為詳細地介紹一下與應聘崗位有關的科目。
點評:不要強調所學科目會對今後的工作會有極大的作用,只著重強調打好了理論和技能基礎。

28、你的學習成績如何?

回答:
“較好。”
“一般。”我在學校里除課堂上學習的知識外,比較喜歡擴充自己的其他方面的知識,對XX類的書也看了不少。
點評:對自己的學習成績一定要如實回答。如果成績優秀,應該用平和的口氣,實事求是地介紹,決不可自我炫耀,讓人覺得輕浮;如果成績不好則應說明理由,或者哪門課程不好,隱瞞或欺騙,只會暴露自己的不良品行。總之,應表現出對學習的態度是認真的,努力的,對成績又看得比較客觀。這樣即使你的成績不太理想,主試人的反應也不會太強烈。

29、請談一談你的弱點?

回答:
我是一個完美主義者,總是追求事物完美無缺。
我對準時要求得非常嚴格。
我從不輕易放棄,以至有些固執。
我喜歡獨立工作,而不喜歡主管領導在我的工作中安排一切。
點評:一般的策略是說出一些錶面上是弱點,實際上卻是優點的特征。當你在敘述個人弱點時,要能夠說出過去的具體相關事例,來說明你的觀點。這點非常重要。當然,你也可以說一個你明顯的缺點,然後舉出例子說明你是怎樣剋服這個缺點的。此問是主試者看看你是不是由於缺少某種經驗、訓練,甚至由於某些性格弱點而不能勝任工作。

30、請談談你的優點?

回答:我非常喜歡和善於學習新東西,在工作中有責任心,真誠,有熱情,有靈活性,能夠合理地安排時間使工作有條理、有效率,能夠在緊張壓力下工作等等。
點評:以上回答要有具體實例來證明你的說法。優點除了你的工作技能、具有的各類證書和實踐經驗外,主試者要想聽的優點不見得是你最突出的優點,而應該是和你應聘的那份工作相關的優點,從中找出雇佣你的理由,同時可以知道你對自己的瞭解程度,看看你對自己有沒有自信,以及你到底適合不適合這份工作。因此,你要精確地描述,不可泛泛說些無意義的話,例如,適應力強,具有幽默感,合群等等。

31、你對本公司(或這份工作)有什麼看法嗎?

回答:我對貴公司(或這份工作)很感興趣,很樂意在公司里發揮自己的潛能,我也相信以自己積極的心態,努力工作,在貴公司我會得以發展的。
點評:考官問這個問題的真正目的想要瞭解你能做這份工作嗎?你在這公司工作安心嗎?若你感到沒有準備的話,你最好先說:“讓我想一下”然後深呼吸放鬆,再做回答,這有助於增加你在回答問題時的自信。

32、你為什麼要離開前一家單位?

回答:事實上,離開原來的單位對我來說是比較痛苦的選擇,因為我在那裡工作了x年之後(一段時間),與那裡的領導和同事相處的非常好,同時,通過我的努力,也取得了大家的信任,大家不願我離開。但是,我心中一直希望自己在xx領域內有所發展,由於客觀原因,在前面的單位里一直沒能實現這個願望,所以我還是做出了這個選擇,離開前一個單位。
點評:這個問題看起來較為簡單,但回答要註意。你回答的如果不合適,對方就可能產生這樣的想法,離開前一個單位是不是你不得已而為之,問題在你個人,你會因為同樣或者類似的原因離開我們?因此,要避免過多的抱怨前一雇主。要強調自己個人發展需要的原因,不要歸咎於別人。要讓聘方相信,你在原單位也是工作出色,人際關係良好,但是為了你個人的某種理想和追求,你願意到新公司工作。

33、你有能力勝任應聘的職位嗎?

回答:沒問題!這雖然較難,但是我會想辦法做好的!對我來說這是一個新的挑戰,我相信能夠戰勝它。
忌:“對不起,我缺乏經驗,可能做不好吧?”“一個人做,恐怕我現在不行”
如果聽到這種毫無生氣與活力的話時,自然會在失望之餘產生一種想法:“也許他是一個缺乏能力與自信的人吧!“
點評:掌握好謙虛的度,實在是一個大有學問的問題。中國的傳統教育總是教導人們處事要謙虛,這方面的古訓很多,“滿招損,謙受益”;久而久之。一方面想出人頭地,一方面又自覺不自覺的受這種思想的左右,不敢大膽的發表自己的意見,禮讓過頭,貶低自己。這種虛偽的過謙,特別在應聘外企中很不合時宜。往往弊大於利,適得其反。作為一個企業,理所當然的選擇自信敬業的人。

34、在工作中你怎樣看待錯誤?

回答:
a、我儘量不出錯誤
b、我並不擔心自己會出錯,但我能做到不重覆同樣的一個錯誤。
點評:對回答a的公司沒有錄用。
人非聖賢,熟能無過?錯誤是必不可少的,但關鍵是要能很快地吸取經驗教訓,總結經驗。求職也如此,不要害怕失敗,你應牢牢記住:“失敗乃成功之母!”“失敗是成功的踏腳石。”通往成功的路從不平坦,跌倒是難免的,但是,跌倒了並不是失敗,真正的失敗是跌倒了怕不起來了。”

35、你的電腦能力如何?

回答:如果你這方面能力較差的話,你就應該告訴他們你的電腦能力較為欠缺,但是你目前還在繼續學習電腦。
如果能力強的話,就可直接告訴他們你所得到的高級或中級編程員證書,及電腦的其他能力。
點評:遇到的問題屬於自己的長處,也不要洋洋灑灑,滔滔不絕。對方問到自己的短處,不要避而不談,或者轉移話題,其實每一個人即使是非常優秀的人都會有自己的弱點,這種情況下應該正面回答對方的問題,同時如果自己認為這是一個欠缺而又是對方的招聘條件的話,應該積極表示自己現在的或者即將的行動用來剋服這方面的缺點。

36、你的外語水平如何?

回答:如果你水平高的話,對方又是懂外語的面試官你可以直接用外語進行回答你外語所具備的能力,得到的證書或托福的考分,以表示你的能力。但表示還不夠,還需努力繼續學習。
若你的水平較低,就應如實回答,講出低的原因,如筆頭翻譯不差,口語聽力稍差,或專業辭彙較熟悉,人文辭彙掌握較少等。並表示你目前還在學習。
點評:遇到的問題屬於自己的長處,也不要洋洋灑灑,滔滔不絕。對方問到自己的短處,不要避而不談,或者轉移話題,其實每一個人即使是非常優秀的人都會有自己的弱點,這種情況下應該正面回答對方的問題,同時如果自己認為這是一個欠缺而又是對方的招聘條件的話,應該積極表示自己現在的或者即將的行動用來剋服這方面的缺點。

37、你今後打算是什麼?

回答:“我希望我能夠在這個公司里長久地工作。根據自己的能力和表現,不斷地增加工作中所擔負的責任。”
點評:看看你真正想要得到的是什麼,以判定你是否會長期在公司工作。明確你的個人目標和公司是否一致。

38、你為什麼想要換工作?

回答:“我想進一步發揮我的能力”,或“我目前單位的發展機會非常有限。”
點評:這個問題是判斷你的動機,和你處理問題的能力。切記,不要抱怨你過去或目前的雇主。

39、談一談你在過去工作中生活中遇到的問題,以及如何解決?

回答:舉一個你在過去的工作中或生活中遇到的問題,說明你是如何解決該問題的。
點評:判斷你對問題的分析能力,看看你有沒有團隊精神和剋服困難的信心。這也是給你一個表現自我的機會。

40、請談一下你期望的月薪要求?

回答:如果我能到貴公司工作,這將是我跨出校門,第一次走上社會工作,我相信我自己的能力,如果能受聘這個職位我一定會非常努力的工作,因此每月xxxx元的工資是我個人的要求,但我更關心的是能找到一份工作來充分發揮我個人的能力。
點評:實際上用人單位決定錄用你時,對你的待遇其實已基本確定。特別在一些國企跨國大公司中,對大學生的工資待遇公司都有了相關規定的,但也不是絕對不可更改的。此問也是面試者為了瞭解你對自己的估價。因此對月薪不能要求過高,但也要合理。如果你覺得單位給你的月薪偏低,可以將你的關註告訴單位。你要讓單位覺得你是在同他們商議,而不是要挾。重點放在你關註的原因上。比如,你要租房、車費、生活費等基本開銷或探親等,希望單位算一下你的基本生活開銷,那麼效果會比簡單地說你要多少多少工資要來得好些。

41、請問你還有問題要問嗎?

回答:回答這個問題,大有學問。首先,你可以將你在面試中還沒有機會提出的相關問題提出來。其次,進一步強調一下你在面試過程中沒有機會談到的個人優勢。如果實在沒有什麼可以說的,也不要說沒有問題。你可以問面試者下一次的面試(如果有的話)是什麼時間?或者問面試者什麼時候可以得到結果,以及什麼時候可以打電話給他。如果你確定得到這份工作,這個時候你就應該對面試者這麼說:“我很想得到這份工作。我認為我完全能夠勝任這份工作。請給我這個機會。”最後,對面試者表示致謝,握手,告別。
點評:此問一般當面試者要結束面試時,常常會問的問題。

42、請你自我介紹一下?

  思路:
  (1)、這是面試的必考題目。
  (2)、介紹內容要與個人簡歷相一致。
  (3)、表述方式上儘量口語化。
  (4)、要切中要害,不談無關、無用的內容。
  (5)、條理要清晰,層次要分明。
  (6)、事先最好以文字的形式寫好背熟。

43、你的座右銘是什麼?

  思路:
  (1)、座右銘能在一定程度上反映應聘者的性格、觀念、心態,這是面試官問這個問題的主要原因。
  (2)、不宜說那些醫引起不好聯想的座右銘。
  (3)、不宜說那些太抽象的座右銘。
  (4)、不宜說太長的座右銘。
  (5)、座右銘最好能反映出自己某種優秀品質。
  (6)、 參考答案——“只為成功找方法,不為失敗找藉口”

44、能談談你未來3,5年給自己的職業規劃嗎?

我想成為這個領域的專業化人士,但我明白這是一個長期努力的過程,現在我的初步打算是:第一階段,我希望從現在開始,1-2年之內能夠在我目前申請的這個職位上沉澱下來,積累最起碼的工作經驗,把基礎打牢;第二階段,我希望利用3-5年的時間,成為一個在自己的專業方面能夠獨當一面的人,能夠獨自承擔責任,發現問題,解決問題,不讓上司操心;第三階段,成為該領域的一名專業化人士,在工作中能有創新與發展,能為公司帶來更大的價值。

45、你認為怎樣才是全端工程師(Full Stack developer)

我想我應該算是一個全棧型工程師了,行業經驗已經超過10年。獨立做過不少產品,也帶過不少項目,經過的產品包括桌面端、Web產品、移動端產品,Web端涵蓋前端與後端,移動端主要做iOS和混合開發。
a、熟悉Web前端,對MVC/模塊化開發有實戰經驗,熟悉CoffeeScript、Grunt、RequireJS、Handlebars等等,自己寫過小型的Javascript框架,一個項目中的JS代碼超過一萬行。熟知網頁優化,知道如何讓網頁變得更加快速。也略懂SEO,知道什麼樣的URL和代碼會更討好Spider。
b、熟悉Node.js,有幾個項目都是基於Node.js的,目前發佈有開源的Blog程式Purelog,在NPM上有多個模塊發佈。熟悉混合開發,過去我曾經有超過一年的時間是在研究Hybrid技術,多個App基於混合開發技術,也有開發類似於PhoneGap的解決方案。對HTML5在手機上的表現頗為熟悉,挖過很多的技術坑,如白屏問題,Sqlite問題,滾動條問題,硬體動畫加速、點擊延時問題等等。
c、會做設計,熟悉Photoshop,所有的產品不管是Logo還是界面全都是自己做的設計,雖然在資深的設計師眼裡不值一提,但在工程師隊伍中算是比較另類了。
d、熟悉Objective-C,有兩年以上的iOS開發經驗,在App Store上有約十款App。熟悉伺服器的一般性操作,自己有VPS並運行多個網站,雖然配置伺服器經常要去Google。

46、介紹一個你最得意的作品吧?

思路:這個問題要具體問題具體分析,你可以從這些方面去回答,比如說詳細介紹一下你自己獨立開發過什麼插件、做過什麼項目,用到了什麼技術,這個插件實用性和擴展性怎麼樣,你把你的項目開源到github網站,得到了很多人的認可等等。

47、項目中遇到什麼問題?如何解決?

思路:這個問題要具體問題具體分析,比如說開發插件的時候遇到過一些技術問題而你並不瞭解這些技術問題,然後你是通過什麼方式解決的。這個過程面試官容易看出來你在遇到困難時如何解決問題的能力,比如說上google查資料,詢問你的同事,去一些論壇求助等,這個要根據你的實際情況回答。 

48、你在現在的團隊處於什麼樣的角色起到了什麼明顯的作用?

思路:比如說我在現在的團隊中是一個項目組的組員,負責項目的某個模塊的內容,這個模塊在整個項目起著至關重要的作用,所以我要盡心盡責的把這個模塊做到更好,不拖團隊的後腿等等。。

49、假如分配給你一項任務,只有要求完成時間,沒有任何歷史文檔或相關資料,請問你要怎麼著手進行?

思路:我首先會詳細的分析這項任務的需求,比如說要實現什麼功能,要使用什麼技術,難點在哪裡,我該如何解決這些難點問題,考慮清楚後,然後就開始上網查找相關的資料素材,分好步驟,並開始著手進行。

50、你能為我們做什麼?

思路:
a、 基本原則上“投其所好”。
b、 回答這個問題前應聘者最好能“先發制人”,瞭解招聘單位期待這個職位所能發揮的作用。
c、 應聘者可以根據自己的瞭解,結合自己在專業領域的優勢來回答這個問題

51、內容還會不斷補充。。。

博客數據來源聲明:
本博客大部分數據來源於各大網站的收集整理改編,主要有GitHub(https://github.com)、題來了(http://www.tilaile.com)、牛客網(https://www.nowcoder.com)、一些英文網站,還有一些論壇、博客、IT招聘等網站。還有少部分數據時來源於本人自己整理添加,添加的內容主要是本人認為比較重要知識點,面試時可能會問到的題目,自己整理題目以及參考答案,答案僅供參考,答案可能存有錯誤或不足,歡迎大家批評指正或補充更好的答案。好讓我及時更正,以免誤導其他人。本博客僅提供參考作用。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • <!doctype html> <html> <head> <title>CSS3logo</title> <style type="text/css"> html, body, div, img { margin: 0; padding: 0; } #box { position: absolut ...
  • web工程中如何將大量數據從伺服器端傳送到瀏覽器一直是很重要的一個問題。 其中一個解決方法是在伺服器端將將數據封裝成json格式,然後傳給前臺。廢話不多說,下麵講乾貨。 1.要用json必須下載一個庫和必須的依賴項。 2.導入到eclipse/myeclopseweb工程中web-inf/lib中。 ...
  • 1、元字元 [擁有特殊含義的元字元] \d -> 匹配一個0-9的數字,相當於[0-9],和它相反的是\D ->匹配一個除了0-9的任意字元 \w -> 匹配一個0-9、a-z、A-Z、_的數字或字元,相當於[0-9a-zA-Z_] \s -> 匹配一個空白字元(空格、製表符...) \b -> 匹 ...
  • <!doctype html><html><head><meta charset="utf-8"><title>無標題文檔</title><style>body{ background:#000;}.upshop-view{ width:320px; height:499px; background ...
  • 上面的兩張圖片中,你能看出有什麼不同嗎? 右圖使用 html5 canvas api 中的 和 函數嵌入了一段文字。 道理很簡單, 函數返回一個 對象,該對象包含三個屬性: 是一個位元組數組,每 4 位元組表示圖片中一個像素,按照“ 紅、綠、藍、透明度”的順序依次排列, 表示圖片寬度, 圖片高度。 只要 ...
  • 關於“加入收藏”的代碼,很多人都不會重視,一般情況是隨便在網上搜一個代碼放在頁面里就草草了事了。可是都沒有做到主流瀏覽器的相容。下麵分享一段使用 jQuery 實現加入收藏夾的功能。 ...
  • [1]h [2]p [3]div [4]hr [5]pre [6]blockquote [7]address [8]其他 ...
  • 我們在做頁面佈局的時候,經常需要利用浮動來實現一些佈局效果,這樣帶來的後果就會導致父元素丟失寬度。今天我們就來說說‘找回‘寬度的方法。 而清除浮動後的效果應該是這樣的請看: 下麵就說說方法,方法其實有非常的多,下麵部分方法的截圖請大家參考 (1)父級div定義height。(2)結尾處加空div標簽 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...