前端面試題(一)

1.css中實現(xiàn)吸頂?shù)膶傩裕?/h2>

position:sicky;

2.webpack在npm run build之后發(fā)生了什么?

3.vue中data為什么返回是一個對象?

如果直接返回一個對象,對象是引用類型,當我們在多個頁面引用這個組件,去修改對象中的某個屬性,其他地方的值也會發(fā)生變化,而return出一個方法,每次引用都會是一個新的對象,引用地址不同,就不會出現(xiàn)這個問題

4.請輸出一下js運行的結果 并說明原因。

1.<script>console.log(a)</script>

5.ES5中怎么聲明const?

6.watch和computed的區(qū)別?

watch是只要數(shù)據(jù)變化 就會觸發(fā)相應的操作,不支持緩存,支持異步

computed支持緩存,當依賴的數(shù)據(jù)發(fā)生變化時觸發(fā)相應的操作 不支持異步,

當多個數(shù)據(jù)依賴一個數(shù)據(jù)時用watch 而一個數(shù)據(jù)依賴多個數(shù)據(jù)時用computed

7.瀏覽器緩存有哪些?

瀏覽器緩存(HTTP緩存):1.強緩存:強緩存是利用http頭部Expires和cache-control來控制的,當發(fā)起請求時,瀏覽器會檢測expires和cache-control來判斷資源是否過期,如果沒有過期會直接使用緩存,不再向瀏覽器發(fā)起請求,如果過期了 會向瀏覽器發(fā)起協(xié)商緩存。2.協(xié)商緩存:第一次發(fā)起請求時,服務器會在response header中添加一個 Last-Modified字段 他的含義就是該資源在服務器中最后一次修改的時間,下一次發(fā)送請求時,瀏覽器會在request-header中添加一個Last-Modified-Since字段 這個字段的值就是服務器返回的Last-Modified的值,服務器接收到請求時 會用這個值和服務器最后對資源進行修改的值做對比,如果相同,就響應瀏覽器304,去讀取緩存,如果不同就重新讀取資源返回200

8.深拷貝和淺拷貝的方法有哪些?

? ? ?深拷貝的實現(xiàn)方式:

1.JSON.parse() /JSON.stringfy()用JSON.stringfy()把對象轉化為JSON字符串,再用JSON.parse把字符串轉換為對象 就會生成一個新的對象,而且對象會開辟一個新的棧,就會實現(xiàn)深拷貝

2.函數(shù)庫loadsh()

3.封裝一個遞歸方法


9.react的setState是同步還是異步?

setState只在合成事件和鉤子函數(shù)中是“異步”的,在原生事件和setTimeout 中都是同步的。

setState 的“異步”并不是說內(nèi)部由異步代碼實現(xiàn),其實本身執(zhí)行的過程和代碼都是同步的,只是合成事件和鉤子函數(shù)的調用順序在更新之前,導致在合成事件和鉤子函數(shù)中沒法立馬拿到更新后的值,形成了所謂的“異步”,當然可以通過第二個參數(shù) setState(partialState, callback) 中的callback拿到更新后的結果。

setState 的批量更新優(yōu)化也是建立在“異步”(合成事件、鉤子函數(shù))之上的,在原生事件和setTimeout 中不會批量更新,在“異步”中如果對同一個值進行多次setState,setState的批量更新策略會對其進行覆蓋,取最后一次的執(zhí)行,如果是同時setState多個不同的值,在更新時會對其進行合并批量更新。

10.forEach和map有什么區(qū)別?

forEach會返回undefined 所以會直接改變原數(shù)組 而map會創(chuàng)建一個新數(shù)組然后返回

11.v-model的實現(xiàn)原理?

? ? 實現(xiàn)數(shù)據(jù)的雙向綁定 總共分為三步:1.實現(xiàn)一個Observer,Observer是一個數(shù)據(jù)監(jiān)聽器,其核心原理時Object.defineProperty(),用來劫持并監(jiān)聽所有的屬性,如果有變動的,就通知訂閱者。2.實現(xiàn)一個訂閱者Watcher,每一個watcher都綁定一個更新函數(shù),watcher可以收到屬性的變化,并執(zhí)行相應的函數(shù) 更新到視圖。3.實現(xiàn)一個解析器Complier,可以掃描和解析v-model和v-on指令,如果節(jié)點存在v-model和v-on指令,則解析器complier初始化這類節(jié)點的模板數(shù)據(jù),使之可以顯示再視圖上,然后初始化相應的訂閱者

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容