文章寫於 2016 年,舊的博客不維護了,一些文章直接遷移到這邊來。如今看當時本身仍是很青澀的哈哈,不論是文筆仍是前端。這一篇是阿里的一面記錄,比較基礎。
1. 無線端開發和PC端開發有什麼不一樣?
從三個方面講:
HTML:使用不少新的標籤:
前端
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"><meta name="apple-mobile-web-app-capable" content="yes">複製代碼
在body裏面可使用<header><section>
等H5新標籤
CSS:使用rem單位;
rem單位的計算方法:40 * (設備寬度 / 設計圖寬度);使用的時候實際設計圖大小/40
面試的時候說錯了=。= 可是他沒告訴我(把設計圖寬度和設備寬度說反了)
設置在document.documentElement.style.fontSize
;設備寬度爲document.documentElement.clientWidth
使用更多的CSS3動畫;flex佈局,可是要考慮兼容性問題
針對特定大小的設備進行媒體查詢
JavaScript:使用一些輕量級的第三方庫,如用zepto代替jquery,vue代替angular;
流量很重要,更要注重js文件的壓縮合並混淆;其餘的當時沒想到
vue
2. 移動端圖片有作什麼優化
- 根據設備的像素密度使用不一樣大小的圖片;實現方法:經過cdn的雲處理,在js裏判斷是否是Retina屏幕,根據像素比使用不一樣尺寸的圖片達到目的
- 使用新的格式好比Webp。
- 壓縮圖片,也可使用cdn來實現,jpg控制質量
- 使用雪碧圖,將小圖合併;可是也不能作太大的圖片,佔用太多的內存。
3. 對ES6的瞭解
- 新增的變量定義關鍵字:let, const;分別對應塊級做用域和常亮
- 對數組,正則表達式進行了一些拓展,好比解構賦值(當時忘記這個詞了),其實並沒怎麼了解,只是有看過
- 異步寫法的優化:promise的使用
4. 對Node的瞭解
- 使用node寫過豆瓣首頁的爬蟲
- 爬蟲的使用有使用第三方的模塊,好比eventproxy;也有使用promise進行改寫
- 知道babel編譯,但沒有用
確實沒怎麼寫過啦,不過下次能夠說一些gulp相關的東西,一些文件操做
5. 寫測試
- 使用Mocha和Chai
- 主要是功能性的測試,好比表單。實際項目不會寫,由於時間比較緊張。
- 學習了百度的IFE的教程,裏面寫了一些測試,不用人工測試比較方便。
6. Angular相關
- 對雙向綁定的理解。當時說的有點亂,這裏引用一下:
用戶在視圖上的修改會自動同步到數據模型中去,一樣的,若是數據模型中的值發生了變化,也會馬上同步到視圖中去。
當時把模型說成了js了=。=捂臉逃
- 雙向綁定怎麼實現。
髒檢查
維護一個監控數組,對前端事件進行綁定,改變模型的時候調用更新方法;($digest)
更新方法是經過遍歷監控數組,對每一項進行檢查,發現有不一樣的時候就相應的更新數據
在模型裏面使用$apply或者改變$scope的屬性也會觸發$digest
- 活動使用一些利弊
比較笨重,性能不太好,須要不斷的遍歷檢查;可使用vue或者react來作;
好處就是渲染數據比較方便,更新模型也比較方便
- 使用的一些心得
封裝一些指令和過濾器:cdn圖片處理的過濾器,全站活動通用的下載浮層封裝成指令模板
7. 跨域解決方案
- jsonp。實際上是面試快結束了,面試官問我有沒有什麼問題。我就問了jsonp是否是必需要後臺的支持。答案是是。
jsonp利用的是資源能夠跨域,請求到數據。本質上請求接口獲得的數據是一個變量,而後在js裏對變量進行操做。
jsonp的返回必需要字符串拼接成合法的js語句,而後才能執行(我問是由於Angular好像不用後臺支持就能用了,如今想應該是後臺有寫好吧,開發的人沒有去問。而後面試官就問我其餘的跨域解決方案了)
- 添加請求頭,就是CORS,定義一下Access-cross-allow-origin,若是當前請求的域名在這裏面的話就能夠跨域了。順便提一下,這裏會產生一個OPTION請求,瀏覽器本身請求的,進行嗅探
- 經過後臺代理進行,好比後臺java能夠請求到跨域的數據,而後進行處理後再返回,後臺和前端頁面是同一個域名,就沒有跨域的問題了
8. 其餘
對HTTP2的瞭解:不太瞭解,說了一下增長併發數,忘記了=。=引用:java
異步鏈接多路複用;
頭部壓縮;
請求/響應管線化;
多路複用請求;
對請求劃分優先級;
壓縮HTTP頭;
服務器推送流(即Server Push技術);
SPDY試圖保留HTTP的現有語義,因此cookies、ETags等特性都是可用的。node
複雜一點的選擇器能夠用document.querySelector來實現react
- 面試評價(我問的):能夠增長知識的深度,增強js基礎,庫和框架是學不完的,多深刻了解
- 注意移動端的性能,內存,電量,流量都是很重要的,要選擇一些輕量的解決方案
- 自我介紹感受有點囉嗦了=。=實習經歷感受講的有點多,下次要注意一下
9. 體會
當時5點正在刷網頁,好像是在看圍棋大戰。戴着耳機,忽然感受到有動靜,有點激動,發現仍是杭州的。不過當時沒想到是阿里,覺得是什麼推銷電話=。=真是太naive啦。
面試官聲音好好聽啊~瞭解到是面試,很緊張,就麻煩面試官等2分鐘,想本身整理一下情緒哈哈哈。
而後就關掉瀏覽器,打開本身的博客啊,簡歷啊,準備等會能夠看看,又準備一些紙和筆,想待會能夠寫下來整理一下思路,順便記錄一下面試問題。
而後打開了手機的錄音機= =想把面試過程錄音下來。然而,事實是,一接到電話就自動中止錄音了….電話結束了才發現。
接着就是插上耳機等面試官打電話過來了,仍是很快的。
以爲面試官好好人,好nice!!我說完一段話都會迴應我,也是讓我沒那麼緊張了。
面試24分鐘,面試完臉熱熱的= =,也很口渴。
啊jquery
~~好想去阿里啊
~~~
目前狀態是面試中,估計一面是過了吧…二面但願本身好好加油。web