1. 程式人生 > >前端面試經歷及總結

前端面試經歷及總結

昨天突然收到今天面試的通知...原來還以為簡歷沉了,於是跟cao和小明弄網際網路+去了,前端沒怎麼複習。

其實問的問題挺基礎的,師兄師姐人也不錯,就是今天部門行政那邊安排有點小失誤。面試整個過程發現自己還是對前端學習不夠啊,尤其是CSS這方面,之前都交給女生去做了,簡直是挖坑給自己跳...

先說幾個印象比較深刻的問題:

1. 說說你對單頁面應用的理解

老實說這問題確實不太會答,所以直接在百度上引用一段文字:
“單頁面應用(SPA)是旨在對Web應用發動革命的軟體運動中可信度很高的一種。此類應用有望進行更加模組化的開發,令應用更加容易地適配與多個裝置,並擁有更好的應用生命週期管理—這些幾乎是軟體架構師希望的全部。單頁面應用誕生於擁有更多動態頁面內容的Web 2.0革命。舊的超連結頁面瀏覽模型給使用者帶來了不和諧的體驗,而Web 2.0原則允許資料驅動時間在一個頁面內建立,並讓頁面內容在需要的時候更新。”

首先亮點是容易適配,再一個是頁面的動態重新整理(感覺有點Ajax的味道),後來面試結束時我也問了師兄單頁面應用和微信小程式的區別,感覺二者功能相仿,但是小程式API略多。師姐還補充說單頁面應用會產生較大的頁面,會影響載入速度,我也針對這一點說了載入能性優化,但感覺現在的手機更迭速度太快,基本上效能這方面需要操心的應該還不算多。

2. js實現居中的思路

面試的時候緊張得毫無思路...後來想了一想,大概是:
①獲取瀏覽器的寬和高;

②獲取視窗的寬和高;

③可以用絕對定位,left和top直接賦值為(瀏覽器寬/高 - 視窗寬/高)/2;

④如果想要適應視窗變化的話可以封裝成一個函式,window.onresize時呼叫。

面試的時候往復雜的去想了...竟然還說了訪問CSS屬性...

3. 你怎麼用JS封裝一個Jquery外掛

講真,這個真的不會...百度了一下,感覺有點像自執行函式:

(function ($) {
    $.fn.typewriter = function () {
        var $ele = $(this), str = $ele.html(), progress = 0;
        $ele.html('');
        var timer = setInterval(function () {
            var current = str.substr(progress, 1);
            if (current == '<') {
                progress = str.indexOf('>', progress) + 1;
            } else {
                progress++;
            }
            $ele.html(str.substring(0, progress) + (progress & 1 ? '_' : ''));
            if (progress >= str.length) {
                clearInterval(timer);
            }
        }, 75);
    };
})(jQuery);
能比較直觀看出的是在JS程式碼外部套了一層
(function ($) {
$.fn.function_name(){
    //JS業務程式碼
    };
})(jQuery)

$符號依舊錶示jQuery,寫成這樣一個自執行函式能夠避免$被其他庫覆寫。

這個是真沒學過,但是非常非常入門級的知識,怪自己基礎薄弱。

師兄還讓我介紹一下各種框架的概念,就答了AngularJS的雙向繫結,沒有答到模組化,指令系統和MVC這些...

後來又扯了ReactJS,竟然忘記了元件化和虛擬DOM這個黑科技...還有BootStrap支援響應式佈局,相容性強等等...沒用過的東西還是老實說自己不會,技術又不是吹出來的。

中間還被師姐“戲耍”了一波:通過inline-block使得多個內部含有換行的div標籤同行顯示,會發現相鄰div之間有一個空白,怎麼去除?

當時我本來想說父元素設定font-size:0, 但是後來師姐說沒辦法去掉,因為換行本身是佔位的。我才發現自己想到多元素水平居中去了 - - 這個問題也是之前問過腿子的:

佈局這方面還是菜...

最後總結一下,整個面試過程還是比較愉快,畢竟都是年輕的師兄師姐,只是自己前端基礎沒有怎麼好好複習。面試的移動事業群有移動端的前端開發,包括微信開發,這是我比較感興趣的,但是苦於沒有專案,所以還是迫切希望能夠找到一個相關的實習來培養這方面的技能,自學太容易走彎路了。

好不容易找到一個感興趣的方向,但是因為自己基礎不紮實可能又要擦肩而過了...繼續加油吧 (話說今天寫了好多字,我都好幾個月沒握過筆了...被實力吐槽)QvQ