js 相關(guān)面試題 (更新中)
基礎(chǔ)題
數(shù)據(jù)類型的分類? 原型類型與引用類型分別有哪些?
==和===區(qū)別
let 與 const 的區(qū)別
let 與 var 的區(qū)別
數(shù)組去重有什么方式
數(shù)組對象有哪些原生方法,列舉一下
什么是偽數(shù)組(類數(shù)組)和真正的數(shù)組有什么區(qū)別
什么是事件對象,你知道的事件對象中都有什么東西。
事件委托的原理,和實現(xiàn)方式,為什么用事件委托
documen.write和 innerHTML的區(qū)別
null,undefined的區(qū)別?
什么是window對象? 什么是document對象?
javascript 代碼中的"use strict";是什么意思 ? 使用它區(qū)別是什么?
什么叫做作用域,作用域鏈
局部變量和全局變量有什么區(qū)別。
形參與實參的關(guān)系
new操作符具體干了什么呢?
談?wù)則his的理解
什么是閉包(closure),為什么要用它?
js中深拷貝與淺拷貝的區(qū)別?實現(xiàn)深拷貝的方法有哪些?
js添加事件的方法有哪些?
關(guān)于事件,IE與火狐的事件機制有什么區(qū)別? 如何阻止冒泡?
IE為事件冒泡,F(xiàn)irefox同時支持事件捕獲和事件冒泡。但并非所有瀏覽器都支持事件捕獲。jQuery中使用event.stopPropagation()方法可阻止冒泡;(舊IE的方法 ev.cancelBubble = true;)
attribute與property的區(qū)別?
attribute是dom元素在文檔中作為html標簽擁有的屬性
property是dom元素在js中作為對象擁有的屬性。
所以,對于html的標準屬性來說,attribute和property是同步的,是會自動更新的。但對于自定義屬性,他們不同步。
DOM操作
(1)創(chuàng)建新節(jié)點
createDocumentFragment() //創(chuàng)建一個DOM片段
createElement() //創(chuàng)建一個具體的元素
createTextNode() //創(chuàng)建一個文本節(jié)點
(2)添加、移除、替換、插入
appendChild()
removeChild()
replaceChild()
insertBefore() //在已有的子節(jié)點前插入一個新的子節(jié)點
(3)查找
getElementsByTagName() //通過標簽名稱
getElementsByName() //通過元素的Name屬性的值(IE容錯能力較強,會得到一個數(shù)組,其中包括id等于name值的)
getElementById() //通過元素Id,唯一性
參考:https://zhuanlan.zhihu.com/p/148098455
高頻面試題
JS延遲加載的方式有哪些?
["1", "2", "3"].map(parseInt) 答案是多少?
new實現(xiàn)原理
promise實現(xiàn)原理,Promise如何在同一個promise里發(fā)起多個請求?
Promise async await
算法: 選擇排序和快速排序
回顯:一個列表需要請求數(shù)據(jù),同時需要初始化怎么做
js是單線程、瀏覽器怎么處理的
Eventloop,宏任務(wù)微任務(wù),那些是宏任務(wù)那些是微任務(wù),執(zhí)行順序
防抖和節(jié)流是什么?節(jié)流防抖應(yīng)用場景,詳細講解一下代碼實現(xiàn)
重繪,重排,回流的區(qū)別?
重排重繪的區(qū)別,性能消耗大的是誰?怎么解決?
類數(shù)組,數(shù)組與類數(shù)組的轉(zhuǎn)換
es6 generate函數(shù) ,yelid關(guān)鍵字,迭代器的使用,.Proxy 對象
Object.create, Object.definePropery, Object.assign,Object.is等方法
數(shù)組方法 reduce() , flat() / filter() , map() , forEach()
數(shù)組方法 Array.from() 與 Array.of()
數(shù)組方法 at() , copyWithin(), entries(), every(), fill(), ?find, include, some
函數(shù)柯西化, 手寫
函數(shù)方法, Function.prototype.call , Function.prototype.apply , Function.prototype.bind三者的區(qū)別
this 的理解
閉包的理解
執(zhí)行上下文
原型,原型鏈
深拷貝和淺拷貝的區(qū)別,分別有哪些方式可以實現(xiàn)深拷貝淺拷貝
瀏覽器與網(wǎng)絡(luò)相關(guān)面試題
瀏覽器渲染機制
瀏覽器有哪些線程
瀏覽器的運行機制
瀏覽器的緩存機制,強緩存和協(xié)商緩存
url實現(xiàn)原理
UDP TCP區(qū)別
三次握手,四次揮手
http是什么?無狀態(tài)協(xié)議是什么?怎么理解
HTTP請求報文
http和https的區(qū)別?自己有申請過https的流程嗎?
http的方式有哪些?分別代表什么?
http 1.0 http1.1 http2.0的區(qū)別,如何開啟2.0
socket , 輪詢,長輪詢的理解