面試遇到基礎問題總結

    身爲一個兩年半經驗的前端,這些問題沒答出來其實還是蠻丟人的。

    

    第一個問題:

    原型鏈

    這是js常見問題,其實也用過,但是因爲業務代碼需要用到的原型鏈的東西比較少,所以寫的比較少。然後當場面試官讓我隨便寫一個,一緊張,居然沒寫出來。(光是這個寫不出來,就應該被pass了)

    寫一個簡單的原型繼承:

    var a = function(){
        this.name = "aaa";

    };

    a.prototype = {

        getname : function(){

            console.log(this.name);

        }

    };

    var b = new a();

    b.getname();//aaa;

    

    通過給a.prototype設置了一個函數對象的屬性,那有a實例(例中:b)出來的普通對象就繼承了這個屬性。具體是怎麼實現的繼承,就要講到下面的原型鏈了。

    JS在創建對象(不論是普通對象還是函數對象)的時候,都有一個叫做__proto__的內置屬性,用於指向創建它的函數對象的原型對象prototype。

    

    console.log(b.__proto__ === a.prototype) //true

    b的原型鏈指向a的原型對象,因此,b可以繼承a的屬性。

    簡單點說,這就是原型鏈。

    JS一直強調萬物皆對象,函數對象也是對象,給他認個祖宗,指向Object.prototype。Object.prototype.__proto__ === null,保證原型鏈能夠正常結束。(這句是抄來的,萬物皆對象,null生萬物)。

    

    



第二個問題:

    vue{}閃現

    (這就不是個問題,看過vue的,全世界的前端,估計就我一個貨不記得。)

    重點是我用vue單獨開發過一個項目,這項目一直在線上,還沒被發現過bug。

    其實就一個指令 v-cloak

    [v-cloak] { display: none; }

    angular的是ng-cloak;



第三個問題:

    jquery on 和bind的區別

    這個不屬於冷門知識,但是看過也沒有特別去記,加上現在就算用jq也基本都用on了。

    jquery文檔中bind和on函數綁定事件的用法:

        .bind(events [,eventData], handler)

        .on(events [,selector]  [,data], handler)

   可以看出,參數是不同的,on多出一個"selector",那麼他們在綁定事件的時候就有了一個最大的區別:bind只能爲當前已有的元素綁定事件,而動態添加的元素是綁不上的。但是on是都可以的。



第四個問題:

    頁面被高併發訪問時,怎麼處理js,css,圖片的。

    前端設計的時候css js等要可以複用,尤其是js,頁面佈局用到的小圖標等儘量用雪碧。

    css壓縮,js壓縮,圖片懶加載。


問題都很簡單,沒答出來也確實很low比。


以前不注意總結,現在要開始寫下來了,用上用不上,碰上寫下來總是有好處的。望各位打算入坑的朋友有這個覺悟。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章