面試可能會遇到的各種問題講解

barry_mr_楊發表於2017-09-08

語義化html

什麼是語義化html?

    語義化html就是根據頁面內容的結構,選擇合適的標籤(例如頭部用header標籤,導航用nav標籤,底部用footer標籤等)。
    使用語義化html的好處在於便於開發者閱讀,方便後期的更新迭代,增強網頁的權重。

H5新增的特性

H5新增了哪些新特性?

    新增了一些新標籤:canvas,video,header,nav,article等
    form表單新增一些新型別:list,range,email,tel等
    css3新增一些新屬性:@media,@keyframe,transform,box-shadow,display:flex等

閉包

什麼是閉包?使用閉包有什麼好處?

    閉包首先是有兩個函式,一個函式巢狀另一個函式,格式如下:


    function fn(){
        var a = 0;
        return function(){
            a++;
            alert(a);
        }
    }
    var b = fn();
    b();
    函式呼叫一次形成一個閉包。
    
    好處:變數私有化,避免變數命名衝突,可以快取,具有封裝性

null跟undefined

null跟undefined有什麼區別?

    null跟undefined都是js的基本資料型別,null是表示沒有物件,是一個空指標,undefined是宣告瞭一個變數但沒有賦值。

ajax的請求方式

ajax的請求方式有哪些?它們有什麼區別?

    ajax請求方式有get請求,post請求
    get:請求資料量小,請求資訊在位址列顯示,安全係數低
    post:可以請求大量資料,請求資訊不在位址列顯示,安全係數高

json資料

json資料的格式是什麼樣的?如何解析json資料渲染到頁面上?

    json格式:
        簡單格式:
            `{"name":"a"}`
        陣列格式:
        {
            "json":[
                {"name":"a"},
                {"name":"b"},
                {"name":"c"}
            ]
        
        }
        
    解析:
        資料請求成功後儲存到一個變數data中,
        var html = "";
        for(var i = 0; i < data.length; i++){
            html += "<div>" + data.json[i].name + "</div>"
        }
        $(`#element`).html(html);

跨域問題

如何解決跨域問題?jsonp用哪種請求方式?

    iframe跨域
    動態建立script標籤,src結尾需要加上?callback=jsonpCallback
    ajax請求,dataType為jsonp,jsonp的請求方式用get請求
    

原型跟原型鏈

先留著,待講解(因為我不懂,裡邊的關係太亂了)


this物件

如何理解this物件的指向?

    誰呼叫這個方法,this就指向誰,沒有呼叫就指向window,自執行的方法也指向window

圖片懶載入

圖片懶載入的原理?
    
    像做一些電商的專案就會有大量的圖片展示,這時就會用到圖片懶載入,它的原理就是按需載入,先把圖片的真實地址儲存到一個自定義屬性中,為了使用者體驗可以先給img標籤的src一個預設的本地圖片地址,然後根據scrollTop的變化觸發事件把存放圖片真實地址的值賦給src

相關文章