40個(gè)javascript面試必考點(diǎn)中,結(jié)合自身及網(wǎng)上面試經(jīng)驗(yàn),精簡(jiǎn)整理了一些javascript高頻面試題目,并以問答的形式進(jìn)行呈現(xiàn), 盡可能比較真實(shí)的還原面試提問場(chǎng)景。涉及html, css, 前端自適應(yīng),瀏覽器兼容性,原型鏈,場(chǎng)景應(yīng)用,es6、7, 設(shè)計(jì)模式等相關(guān)內(nèi)容。
<br/>
其中代碼實(shí)例和場(chǎng)景應(yīng)用案例都已驗(yàn)證通過,如果遇到錯(cuò)誤歡迎進(jìn)行反饋糾正,我會(huì)及時(shí)進(jìn)行優(yōu)化調(diào)整和測(cè)試驗(yàn)證,盡可能保證所有代碼實(shí)例正常運(yùn)行,排除沖突。
* [一、css垂直居中的幾種實(shí)現(xiàn)方法](一、css垂直居中的幾種實(shí)現(xiàn)方法.md)
* [二、簡(jiǎn)單說一下盒模型,說下如何利用BFC解決外邊距重疊的問題](二、簡(jiǎn)單說一下盒模型,說下如何利用BFC解決外邊距重疊的問題.md)
* [三、說一說產(chǎn)生塌陷的原因以及清除浮動(dòng)的幾種方法](三、說一說產(chǎn)生塌陷的原因以及清除浮動(dòng)的幾種方法.md)
* [四、偽類和偽元素的區(qū)別?聊一下css選擇器的優(yōu)先級(jí)](四、偽類和偽元素的區(qū)別?聊一下css選擇器的優(yōu)先級(jí).md)
* [五、css中的過渡和動(dòng)畫效果了解嗎](五、css中的過渡和動(dòng)畫效果了解嗎.md)
* [六、彈性盒模型了解嗎](六、彈性盒模型了解嗎.md)
* [七、簡(jiǎn)單說下BOM和DOM的區(qū)別](七、簡(jiǎn)單說下BOM和DOM的區(qū)別.md)
* [八、如何解決瀏覽器的兼容性問題?瀏覽器調(diào)優(yōu)都用到過哪些方法](八、如何解決瀏覽器的兼容性問題?瀏覽器調(diào)優(yōu)都用到過哪些方法.md)
* [九、之前寫過h5嗎?有遇到過哪些兼容性問題?說下怎么解決的](九、之前寫過h5嗎?有遇到過哪些兼容性問題?說下怎么解決的.md)
* [十、h5是如何做移動(dòng)端適配的?折行的時(shí)候如何實(shí)現(xiàn)不斷行](十、h5是如何做移動(dòng)端適配的?折行的時(shí)候如何實(shí)現(xiàn)不斷行.md)
* [十一、聊一聊js中實(shí)現(xiàn)數(shù)組拷貝的常用方法](十一、聊一聊js中實(shí)現(xiàn)數(shù)組拷貝的常用方法.md)
* [十二、聊聊js中的數(shù)據(jù)類型,如何用js實(shí)現(xiàn)一個(gè)對(duì)象的深拷貝](十二、聊聊js中的數(shù)據(jù)類型,如何用js實(shí)現(xiàn)一個(gè)對(duì)象的深拷貝.md)
* [十三、偽數(shù)組和數(shù)組的區(qū)別?相互轉(zhuǎn)化的方法有哪些](十三、偽數(shù)組和數(shù)組的區(qū)別?相互轉(zhuǎn)化的方法有哪些.md)
* [十四、請(qǐng)介紹Js中有哪些循環(huán)遍歷的方法,關(guān)于數(shù)組常用的方法有哪些](十四、請(qǐng)介紹Js中有哪些循環(huán)遍歷的方法,關(guān)于數(shù)組常用的方法有哪些.md)
* [十五、js中的reduce了解嗎?都用他解決過什么問題](十五、js中的reduce了解嗎?都用他解決過什么問題.md)
* [十六、事件冒泡和捕獲的執(zhí)行順序了解嗎?什么是事件委托](十六、事件冒泡和捕獲的執(zhí)行順序了解嗎?什么是事件委托.md)
* [十七、call和apply的區(qū)別是什么?caller和callee的區(qū)別有哪些](十七、call和apply的區(qū)別是什么?caller和callee的區(qū)別有哪些.md)
* [十八、javascript中的this都有哪些用法](十八、javascript中的this都有哪些用法.md)
* [十九、怎么理解js中的原型鏈?如何實(shí)現(xiàn)繼承?實(shí)現(xiàn)繼承常用的方式有哪些](十九、怎么理解js中的原型鏈?如何實(shí)現(xiàn)繼承?實(shí)現(xiàn)繼承常用的方式有哪些.md)
* [二十、聊一聊js的作用域和作用域鏈](二十、聊一聊js的作用域和作用域鏈.md)
* [二十一、js的閉包了解嗎?閉包的常見用法說一下](二十一、js的閉包了解嗎?閉包的常見用法說一下.md)
* [二十二、setTimeout和setInterval的運(yùn)行機(jī)制了解嗎](二十二、setTimeout和setInterval的運(yùn)行機(jī)制了解嗎.md)
* [二十三、函數(shù)的柯里化了解嗎?說下函數(shù)柯里化應(yīng)用的場(chǎng)景](二十三、函數(shù)的柯里化了解嗎?說下函數(shù)柯里化應(yīng)用的場(chǎng)景.md)
* [二十四、用js寫一個(gè)ajax的原生實(shí)現(xiàn)方法](二十四、用js寫一個(gè)ajax的原生實(shí)現(xiàn)方法.md)
* [二十五、js如何實(shí)現(xiàn)跨域?聊一聊你之前用到過的方法](二十五、js如何實(shí)現(xiàn)跨域?聊一聊你之前用到過的方法.md)
* [二十六、聊一下cookie、session和token三者的區(qū)別及使用](二十六、聊一下cookie、session和token三者的區(qū)別及使用.md)
* [二十七、用js實(shí)現(xiàn)一下數(shù)組去重和排序,有哪些方法可以實(shí)現(xiàn)](二十七、用js實(shí)現(xiàn)一下數(shù)組去重和排序,有哪些方法可以實(shí)現(xiàn).md)
* [二十八、寫一個(gè)方法,統(tǒng)計(jì)一下html文檔的元素包括元素的數(shù)量](二十八、寫一個(gè)方法,統(tǒng)計(jì)一下html文檔的元素包括元素的數(shù)量.md)
* [二十九、用js實(shí)現(xiàn)一個(gè)省市級(jí)聯(lián)效果](二十九、用js實(shí)現(xiàn)一個(gè)省市級(jí)聯(lián)效果.md)
* [三十、用js實(shí)現(xiàn)一個(gè)輪播圖效果,簡(jiǎn)單說下原理](三十、用js實(shí)現(xiàn)一個(gè)輪播圖效果,簡(jiǎn)單說下原理.md)
* [三十一、請(qǐng)你實(shí)現(xiàn)一個(gè)大文件上傳和斷點(diǎn)續(xù)傳](三十一、請(qǐng)你實(shí)現(xiàn)一個(gè)大文件上傳和斷點(diǎn)續(xù)傳.md)
* [三十二、什么是模塊化開發(fā)?談下AMD、CMD、CommonJs和ES6的區(qū)別](三十二、什么是模塊化開發(fā)?談下AMD、CMD、CommonJs和ES6的區(qū)別.md)
* [三十三、es6了解嗎?說幾個(gè)常見的新特性,set和weakSet的區(qū)別是什么](三十三、es6了解嗎?說幾個(gè)常見的新特性,set和weakSet的區(qū)別是什么.md)
* [三十四、解構(gòu)賦值的用法了解嗎?如何實(shí)現(xiàn)對(duì)象和數(shù)組的嵌套和重命名](三十四、解構(gòu)賦值的用法了解嗎?如何實(shí)現(xiàn)對(duì)象和數(shù)組的嵌套和重命名.md)
* [三十五、談?wù)勀銓?duì)promise的用法和理解](三十五、談?wù)勀銓?duì)promise的用法和理解.md)
* [三十六、談?wù)勀銓?duì)es6中的Generator函數(shù)的認(rèn)識(shí)](三十六、談?wù)勀銓?duì)es6中的Generator函數(shù)的認(rèn)識(shí).md)
* [三十七、談一下async-await的實(shí)現(xiàn)原理](三十七、談一下async-await的實(shí)現(xiàn)原理.md)
* [三十八、用js實(shí)現(xiàn)一下觀察者模式?簡(jiǎn)單說一下原理](三十八、用js實(shí)現(xiàn)一下觀察者模式?簡(jiǎn)單說一下原理.md)
* [三十九、了解JavaScript中的裝飾器嗎?聊一下JS中的getter與setter的用法](三十九、了解JavaScript中的裝飾器嗎?聊一下JS中的getter與setter的用法.md)
* [四十、聊一下正則表達(dá)式里的常見用法](四十、聊一下正則表達(dá)式里的常見用法.md)
- 前言
- 一、css垂直居中的幾種實(shí)現(xiàn)方法
- 二、簡(jiǎn)單說一下盒模型,說下如何利用BFC解決外邊距重疊的問題
- 三、說一說產(chǎn)生塌陷的原因以及清除浮動(dòng)的幾種方法
- 四、偽類和偽元素的區(qū)別?聊一下css選擇器的優(yōu)先級(jí)
- 五、css中的過渡和動(dòng)畫效果了解嗎
- 六、彈性盒模型了解嗎
- 七、簡(jiǎn)單說下BOM和DOM的區(qū)別
- 八、如何解決瀏覽器的兼容性問題?瀏覽器調(diào)優(yōu)都用到過哪些方法
- 九、之前寫過h5嗎?有遇到過哪些兼容性問題?說下怎么解決的
- 十、h5是如何做移動(dòng)端適配的?折行的時(shí)候如何實(shí)現(xiàn)不斷行
- 十一、聊一聊js中實(shí)現(xiàn)數(shù)組拷貝的常用方法
- 十二、聊聊js中的數(shù)據(jù)類型,如何用js實(shí)現(xiàn)一個(gè)對(duì)象的深拷貝
- 十三、偽數(shù)組和數(shù)組的區(qū)別?相互轉(zhuǎn)化的方法有哪些
- 十四、請(qǐng)介紹Js中有哪些循環(huán)遍歷的方法,關(guān)于數(shù)組常用的方法有哪些
- 十五、js中的reduce了解嗎?都用他解決過什么問題
- 十六、事件冒泡和捕獲的執(zhí)行順序了解嗎?什么是事件委托
- 十七、call和apply的區(qū)別是什么?caller和callee的區(qū)別有哪些
- 十八、javascript中的this都有哪些用法
- 十九、怎么理解js中的原型鏈?如何實(shí)現(xiàn)繼承?實(shí)現(xiàn)繼承常用的方式有哪些
- 二十、聊一聊js的作用域和作用域鏈
- 二十一、js的閉包了解嗎?閉包的常見用法說一下
- 二十二、setTimeout和setInterval的運(yùn)行機(jī)制了解嗎
- 二十三、函數(shù)的柯里化了解嗎?說下函數(shù)柯里化應(yīng)用的場(chǎng)景
- 二十四、用js寫一個(gè)ajax的原生實(shí)現(xiàn)方法
- 二十五、js如何實(shí)現(xiàn)跨域?聊一聊你之前用到過的方法
- 二十六、聊一下cookie、session和token三者的區(qū)別及使用
- 二十七、用js實(shí)現(xiàn)一下數(shù)組去重和排序,有哪些方法可以實(shí)現(xiàn)
- 二十八、寫一個(gè)方法,統(tǒng)計(jì)一下html文檔的元素包括元素的數(shù)量
- 二十九、用js實(shí)現(xiàn)一個(gè)省市級(jí)聯(lián)效果
- 三十、用js實(shí)現(xiàn)一個(gè)輪播圖效果,簡(jiǎn)單說下原理
- 三十一、請(qǐng)你實(shí)現(xiàn)一個(gè)大文件上傳和斷點(diǎn)續(xù)傳
- 三十二、什么是模塊化開發(fā)?談下AMD、CMD、CommonJs和ES6的區(qū)別
- 三十三、es6了解嗎?說幾個(gè)常見的新特性,set和weakSet的區(qū)別是什么
- 三十四、解構(gòu)賦值的用法了解嗎?如何實(shí)現(xiàn)對(duì)象和數(shù)組的嵌套和重命名
- 三十五、談?wù)勀銓?duì)promise的用法和理解
- 三十六、談?wù)勀銓?duì)es6中的Generator函數(shù)的認(rèn)識(shí)
- 三十七、談一下async-await的實(shí)現(xiàn)原理
- 三十八、用js實(shí)現(xiàn)一下觀察者模式?簡(jiǎn)單說一下原理
- 三十九、了解JavaScript中的裝飾器嗎?聊一下JS中的getter與setter的用法
- 四十、聊一下正則表達(dá)式里的常見用法