本次找工做第三次面試。今年年後第一次面試。與第一次面試類似,面的H5崗位。是同一個外包公司安排到同一個金融集團下的另外一個子公司下進行的面試。php
本身感受,此次面試對技術問題的回答比第一次好,更加比第二次好。但彷佛面試官比較不滿意。心裏着實鬱悶,總感受有哪裏不對勁。寫完這篇記錄才發現,並不比第一次面試好到哪裏去。html
面試地點在深圳,面試官在北京,採用遠程視頻進行的面試。不知道面試官那邊效果怎樣,我這邊聲音效果還行,相互對話沒有障礙,但我看到的畫面效果很是差,兩個面試官,只能看到一個面試官的模糊輪廓,看不清(到)臉,另外一個面試官則輪廓都看不到。前端
面試過程也跟第一次類似,首先自我介紹,而後回答技術問題。html5
根據本身認爲的實際狀況說了,JavaScript及相關內容比較熟練。C比較熟練,C++涉及到模板等相對複雜內容不夠熟練。php、python、ios等作過一點,能作一點,不熟練。node
由於作過的東西都相對較小,想把能講的項目都一筆帶過地都講一下。結果只講了個五六年前作的一個網站(用.net web Forms開發的)python
以最先用.net作的網站爲背景,面試官問了對html5新技術的瞭解。
回答:用過require.js,瞭解過sae.js,知道其實現是怎麼回事。
有了解過react,知道其主要的實現原理。
平時本身作東西,由於只是本身的東西,較少考慮舊的瀏覽器,html5的新接口使用的仍是比較多。react
對於這個問題,我頗有信心,首先想到了三種自認爲最主要的跨域方式,CORS、JSONP、WebSocket。
其中CORS名字不記得了,說了在服務端進行設置,設置容許的域和請求頭。
當時對這道題挺有信心的,由於感受這就是跨域最主要的方式,並且本身都作過(如今想一想,WebSocket是作過,webSocket跨域並沒作過)。
但面試官彷佛不大滿意,稱要用前端實現,不要設置服務端;JSONP要特殊處理;WebScoket有性能問題。要求我回答其餘方案。沒能很好接上,想了會,想到了不一樣子域鬆散到同一個父域,實現同一父域下的跨域,又提了一下JSONP。
面試官繼續問JSONP的實現,答了JSONP的js文件調用客戶端函數;答了客戶端可以載入跨域的js資源,js文件載入後會本身執行。自認爲最重要,最核心的原理已經講出來了。
對於JSONP的js文件執行客戶端所定義函數時能夠經過函數參數傳遞跨域數據,由於記憶不夠清晰,也沒時間理清思路,沒有很好講出。可能由於這點沒講清楚,可能前面的表達也不夠好,面試官彷佛並不滿意。ios
這個問題,開始覺得回答得還好。後來細想,遭點不少。
如今想一想,面試官想要的答案應該是instanceof
,或者可能typeof
(做爲錯誤答案)。
我回答,js的數組中加了一個專門的函數(isArray
),但不記得函數名了,直接說了;還回答了採用原型對象進行判斷。
本身覺得答得很好,但面試官並不滿意,追我其餘答案。再想了一下,終於想到了instanceof
,但記成了isinstanceof,英語很差,讀音應該很不標準。並提了instanceof的實現就是採用的原型對象比較。
自認爲答案完整了,但面試官明顯不滿意。又補問了一個,用原型判斷怎麼寫。【本問題最大一個錯誤在此犯下】。答成了xxObject.prototype == Array.prototype。當時沒感受到錯誤,面試官提醒了一遍依然沒感受到錯誤。
最後,面試官補問了typeof的問題,問typeof(ArrayObj)等於多少,答對象,面試官確認了一遍,答object,我知道是這個。面試官繼續問typeof(undefined),由於沒記得太清楚答undefined,並說明了不肯定。對此面試官一直不滿意,我也一直沒明白爲何,本身答對了呀,回來後還確認了typeof(undifined)的結果就是undefined。直到寫到這段話,終於想起,typeof的全部結果值都是字符串,我當時沒說(也沒關注到,確認typeof(undefined)結果時都還沒關注到)。web
回答了媒體查詢,根據屏幕寬度不一樣設置不一樣的樣式。
面試官說,要問的不是這個,說網頁在手機中打開會出現頁面縮小的狀況,怎樣讓一個圖片在手機上顯示正常大小。
回答html的頭部能夠設置容許用戶縮放的範圍和頁面的初始縮放。
感受面試官沒有很滿意,可能面試官期待的是其它或者更多的答案。本身沒有涉及其它更多內容,沒補充上來,面試官也沒繼續追問。面試
問是否有了解。答去年寫過紅黑樹,整個過程的紅黑樹圖形就是用canvas畫的。頁面連接
問canvas有幾種清屏模式。這個不記得的,直接回答比較久沒弄了,不記得了。
能記起來的就這些。
以後面試官順便向深圳這邊確認了,我經過的話是加入他們的外包方(感受是在確承認否放低要求),稱具體結果看機試狀況。以後出會議室,被安排到外面等機試。以後一人出來告知hr MM今天就這樣,先等通知。而後準備跟hr一塊兒離開了,離開前還向hr反應了被安排過等機試的狀況。hr還幫忙去從新確認了一下,最後結果是等肯定面試經過了再安排來機試。(應該沒疑問是未經過了)
本身作過的小項目,玩具型項目挺多,涉及的技術也很是雜亂。
(1)沒有突出的標誌型項目,這已經成爲找工做不容易的一個重要緣由。
之後須要着力打造本身的標誌型項目。將如下兩個網站持續完善改進:
1.之後將做爲我的主站和資料、工具收集站
2.我的業餘項目——知縣網
(2)許多小項目,沒有很好的總結,所涉及的技術已經沒有當年清晰,甚至很不清晰;項目的具體實現方式,各類技術的使用方式,許多都已經不夠清楚,甚至不能正確說出來。
雖然該問題在本次面試中沒有暴露,但在以前的許多面試或多或少是有暴露的,尤爲是上一次面試。
雖然之前肯定了向前端方向發展,但許多技術是相通的,以前的許多非前端項目依然有總結價值的,況且本身最終目標是要作全棧的(毫不是僅僅一個node.js)。
之後要逐漸梳理本身曾經作過的項目,用過的技術,造成文檔,並根據與工做方向的緊密程度逐步深化。
面試完回去的路上,想到了iframe,本身之前接觸過iframe跨域的。本次找工做第一次面試時,面試官問的iframe,後來也考慮的了能夠在回答中加上iframe中跨域數據不能獲取的問題;本身當時答過的,曾用url中hash字段傳遞數據就是iframe實現跨域數據傳遞的例子。但由於考慮跨域問題時一直不多考慮到iframe,沒有足夠重視。之後對iframe,iframe跨域須要繼續補課。
回去以後查了一下跨域的實現,看到了postMessage,這個之前有了解,但一直沒有認真對待,此次該認真對待了。
寫這個記錄時,有忽然想到,14年在廣州第一次知道跨域問題時,當時公司同事提的解決方案好像是web service轉接。而我面試時說的服務器端設置(CORS)可能就是被面試官理解成了服務端消息轉接,甚至面試官要的答案可能就是CORS。記清楚名稱,清晰細節很重要。
記清楚名字instanceof
原型鏈,看了不少次,覺得本身清楚了,結果又掉鏈子了,在掉鏈子的地方補上__proto__
,這個14年在廣州是有接觸過的,用sipml5時,ie9中對象時而有__proto__時而沒有,以後也沒管了,看原型鏈時也會看到,不夠在乎,結果沒記清楚。JavaScript的原型必定要很是清楚、清晰,不能有死角。
有個說法,html是電腦頁面,html5是手機頁面,作html5的大多在關注手機。對我來講,html5主要是提供了更多的js接口,在現實中或許html5主要是手機頁面。專門針對手機的技術,再小的技術點也是重要的技術點。之前有關注的,但仍是不夠得進一步增強。
canvas是html5提供的一個強大功能擴展,有時間必定得努力掌握。但短時間內,目前仍是補其它坑爲主。
整個面試過程,自我感受良好。雖然看不清甚至看不到面試官的臉,但明顯可以感受到面試官不夠滿意。雖然沒有第二次面試那麼糟,但所面的就是本身要的前端(H5)崗位,挺鬱的。經過過後的回憶,特別是這篇記錄的撰寫,發現本身面試中的糟點真的不少,有些是本身能定位的,有些本身不能定位,但已感受到其存在。已經發現的問題要一個一個消滅,未發現的問題要繼續發現。