面試總結(二)

1、jQuery    1.$(document).ready()是個什麼函數?爲何要用它?        當DOM徹底加載,jQuery容許你執行代碼,使用$(document).ready()的最大好處在於它使用於全部        瀏覽器,jQuery解決了跨瀏覽器的難題    2.JavaScript window.onload 事件和 jQuery ready 函數有何不一樣?        (1)前者須要等待dom被建立,還要等待包括大型圖片、音頻、視頻在內的全部外部資源都徹底加載,若是           加載圖片和媒體內容花費了大量時間,用戶就會感覺到定義在window.onload事件上的代碼執行時有明顯           延遲。        (2)後者只須要對dom樹等待,而無需對圖像或外部資源加載等待,從而執行起來更快;           另外一個優點是能夠在網頁中屢次使用,瀏覽器會按他們在html頁面裏出現的順序執行它們    3.jQuery裏的each()是什麼函數?你是如何使用它的?        each()函數容許遍歷一個元素集合,能夠傳一個函數給each()方法,被調用的jQuery對象會在其每一        個元素上執行傳入的函數。        找出全部的選中項,而後咱們在alert框中用each()方法來一個個打印它們        $('[name=NameOfSelectedTag]:selected').each(function(selected){            alert($(selected).text());        });    4.$(this) 和 this 關鍵字在 jQuery 中有何不一樣?        $(this)返回一個jQuery對象,你能夠對它調用多個jQuery方法,好比用text()獲取文本,用val()獲取值等        this表明當前元素,它是js關鍵詞中的一個,表示上下文中的當前DOM元素    5.jQuery.get() 和 jQuery.ajax() 方法之間的區別是什麼?        get()方法是一個只獲取一些數據的專門化方法        ajax()方法更強大,更具可配置性,讓你能夠指定等待多久,以及如何處理錯誤    6.Jquery 與 jQuery UI 有啥區別?        *jQuery 是一個 js 庫,主要提供的功能是選擇器,屬性修改和事件綁定等等。        *jQuery UI 則是在 jQuery 的基礎上,利用 jQuery 的擴展性,設計的插件。 提供了一些經常使用的界面元素,諸如對話框、拖動行爲、改變大小行爲等等    7.jQuery 和 Zepto 的區別?各自的使用場景?        (1)jQuery 主要用於 pc 端,固然有對應的 jQuerymobile 用於移動端        (2)zepto 比 jQuery 更 加小巧,主要用於移動端        (3)jquer mobile 相對於 zepto 功能強大,可是體積也很龐大,zepto 很是的輕量2、ES6知識點    1.箭頭函數使用須要注意的地方        當要求動態上下文的時候,就不能使用箭頭函數,也就是this的固定化        (1)在使用=>定義函數的時候,this的指向是定義時所在的對象,而不是使用時所在的對象        (2)不可以用做構造函數,也就是說不能使用new命令        (3)不可以使用arguments對象        (4)不能使用yield命令        如何理解塊級做用域            (1)在一個函數內部function(){}            (2)在一個代碼塊內部        特色:            (1)不須要function關鍵字來建立函數            (2)省略return關鍵字            (3)繼承當前上下文的 this 關鍵字    2.let和const        let是更完美的var,不是全局變量,具備塊級函數做用域,大多數狀況不會發生變量提示        const定義常量值,不可以從新賦值,若是值是一個對象,能夠改變對象裏邊的屬性值        let:不存在變量提高、暫時性死區、不容許重複聲明、塊級做用域    3.結構賦值        (1)左右兩邊結構必須同樣;        (2)右邊必須是個合法的值;        (3)聲明和賦值不能分開(必須在一句話裏完成);    4.擴展運算符        對象中的擴展運算符(...)用於取出參數對象中的全部可遍歷屬性,拷貝到當前對象之中    5.promise對象        含義:promise是異步編程的一種解決方案,比傳統的解決方案--回調函數和事件更強大更合理。        promise對象兩個特色:            (1)對象的狀態不受外界影響。三種狀態:pending(進行中)、fulfilled(已成功)和rejected(已失敗)            (2)一旦狀態改變,就不會再變,任什麼時候候均可以獲得這個結果        優勢:            (1)將異步操做以同步操做的流程表達出來,避免了層層嵌套的回調函數            (2)Promise對象提供統一的接口,使得控制異步操做更加容易。        缺點:            (1)沒法取消Promise,一旦新建它就會當即執行,沒法中途取消            (2)若是不設置回調函數,Promise內部拋出的錯誤,不會反應到外部            (3)當處於pending狀態時,沒法得知目前進展到哪個階段(剛剛開始仍是即將完成)        基本用法:            Promise構造函數接受一個函數做爲參數,該函數的兩個參數分別是resolve和reject。            const promise = new Promise(function(resolve, reject) {              // ... some code              if (/* 異步操做成功 */){                resolve(value);              } else {                reject(error);              }            });            Promise實例生成之後,能夠用then方法分別指定resolved狀態和rejected狀態的回調函數            promise.then(function (value) {              // success            }, function (value) {              // failure            })        Promise.prototype.catch方法是.then(null, rejection)或.then(undefined, rejection)的別名,用於指定發生錯誤時的回調函數。    ***.jquery的ajax返回的是deferred對象,經過promise的resolve()方法將其轉換爲promise對象。    6.set數據結構        es6方法,Set自己是一個構造函數,它相似於數組,可是成員值都是惟一的。        const set = new Set([1,2,3,4,4])        console.log([...set] )// [1,2,3,4]        console.log(Array.from(new Set([2,3,3,5,6]))); //[2,3,5,6]    7.map, filter, reduce 各自有什麼做用?        (1)map 做用是生成一個新數組,遍歷原數組,將每一個元素拿出來作一些變換而後放入到新的數組中。        (2)filter 的做用也是生成一個新數組,在遍歷數組的時候將返回值爲 true 的元素放入新數組,咱們能夠利用這個函數刪除一些不須要的元素        (3)reduce 能夠將數組中的元素經過回調函數最終轉換爲一個值。3、【簡單理解】gulp和webpack的區別    安裝 gulp 命令行工具:npm install --global gulp-cli    gulp:能夠進行js,html,css,img的壓縮打包,是自動化構建工具,能夠將多個js文件或是css壓縮成一個文件,而且能夠壓縮爲一行,以此來減小文件體積,          加快請求速度和減小請求次數;而且gulp有task定義處理事務,從而構建總體流程,它是基於流的自動化構建工具。    Webpack:是前端構建工具,實現了模塊化開發和文件處理。他的思想就是「萬物皆爲模塊」,它可以將各個模塊進行按需加載,不會致使加載了無用或冗餘的代碼。4、vue和react的各自優點和類似點    1.Vue的優點是:        模板和渲染函數的彈性選擇        簡單的語法和項目配置        更快的渲染速度和更小的體積        更加適合小型項目    2.React的優點是:        更適合大型應用和更好的可測試性        Web端和移動端原生APP通吃        更大的生態系統,更多的支持和好用的工具        比較適合中大型項目    3.React和Vue類似之處:        用虛擬DOM實現快速渲染        輕量級        響應式組件        服務端渲染        集成路由工具,打包工具,狀態管理工具的難度低        優秀的支持和社區    4.不一樣點:        (1).React嚴格上只針對MVC的view層,Vue則是MVVM模式        (2).virtual DOM不同,vue會跟蹤每個組件的依賴關係,不須要從新渲染整個組件樹.              而對於React而言,每當應用的狀態被改變時,所有組件都會從新渲染,因此react中會須要shouldComponentUpdate這個生命週期函數方法來進行控制        (3).組件寫法不同, React推薦的作法是 JSX + inline style, 也就是把HTML和CSS全都寫進JavaScript了,即'all in js';             Vue推薦的作法是webpack+vue-loader的單文件組件格式,即html,css,jd寫在同一個文件;        (4).數據綁定: vue實現了數據的雙向綁定,react數據流動是單向的        (5).state對象在react應用中不可變的,須要使用setState方法更新狀態;             在vue中,state對象不是必須的,數據由data屬性在vue對象中管理;
相關文章
相關標籤/搜索