40个javascript面试必考点中,结合自身及网上面试经验,精简整理了一些javascript高频面试题目,并以问答的形式进行呈现, 尽可能比较真实的还原面试提问场景。涉及html, css, 前端自适应,浏览器兼容性,原型链,场景应用,es6、7, 设计模式等相关内容。 <br/> 其中代码实例和场景应用案例都已验证通过,如果遇到错误欢迎进行反馈纠正,我会及时进行优化调整和测试验证,尽可能保证所有代码实例正常运行,排除冲突。 * [一、css垂直居中的几种实现方法](一、css垂直居中的几种实现方法.md) * [二、简单说一下盒模型,说下如何利用BFC解决外边距重叠的问题](二、简单说一下盒模型,说下如何利用BFC解决外边距重叠的问题.md) * [三、说一说产生塌陷的原因以及清除浮动的几种方法](三、说一说产生塌陷的原因以及清除浮动的几种方法.md) * [四、伪类和伪元素的区别?聊一下css选择器的优先级](四、伪类和伪元素的区别?聊一下css选择器的优先级.md) * [五、css中的过渡和动画效果了解吗](五、css中的过渡和动画效果了解吗.md) * [六、弹性盒模型了解吗](六、弹性盒模型了解吗.md) * [七、简单说下BOM和DOM的区别](七、简单说下BOM和DOM的区别.md) * [八、如何解决浏览器的兼容性问题?浏览器调优都用到过哪些方法](八、如何解决浏览器的兼容性问题?浏览器调优都用到过哪些方法.md) * [九、之前写过h5吗?有遇到过哪些兼容性问题?说下怎么解决的](九、之前写过h5吗?有遇到过哪些兼容性问题?说下怎么解决的.md) * [十、h5是如何做移动端适配的?折行的时候如何实现不断行](十、h5是如何做移动端适配的?折行的时候如何实现不断行.md) * [十一、聊一聊js中实现数组拷贝的常用方法](十一、聊一聊js中实现数组拷贝的常用方法.md) * [十二、聊聊js中的数据类型,如何用js实现一个对象的深拷贝](十二、聊聊js中的数据类型,如何用js实现一个对象的深拷贝.md) * [十三、伪数组和数组的区别?相互转化的方法有哪些](十三、伪数组和数组的区别?相互转化的方法有哪些.md) * [十四、请介绍Js中有哪些循环遍历的方法,关于数组常用的方法有哪些](十四、请介绍Js中有哪些循环遍历的方法,关于数组常用的方法有哪些.md) * [十五、js中的reduce了解吗?都用他解决过什么问题](十五、js中的reduce了解吗?都用他解决过什么问题.md) * [十六、事件冒泡和捕获的执行顺序了解吗?什么是事件委托](十六、事件冒泡和捕获的执行顺序了解吗?什么是事件委托.md) * [十七、call和apply的区别是什么?caller和callee的区别有哪些](十七、call和apply的区别是什么?caller和callee的区别有哪些.md) * [十八、javascript中的this都有哪些用法](十八、javascript中的this都有哪些用法.md) * [十九、怎么理解js中的原型链?如何实现继承?实现继承常用的方式有哪些](十九、怎么理解js中的原型链?如何实现继承?实现继承常用的方式有哪些.md) * [二十、聊一聊js的作用域和作用域链](二十、聊一聊js的作用域和作用域链.md) * [二十一、js的闭包了解吗?闭包的常见用法说一下](二十一、js的闭包了解吗?闭包的常见用法说一下.md) * [二十二、setTimeout和setInterval的运行机制了解吗](二十二、setTimeout和setInterval的运行机制了解吗.md) * [二十三、函数的柯里化了解吗?说下函数柯里化应用的场景](二十三、函数的柯里化了解吗?说下函数柯里化应用的场景.md) * [二十四、用js写一个ajax的原生实现方法](二十四、用js写一个ajax的原生实现方法.md) * [二十五、js如何实现跨域?聊一聊你之前用到过的方法](二十五、js如何实现跨域?聊一聊你之前用到过的方法.md) * [二十六、聊一下cookie、session和token三者的区别及使用](二十六、聊一下cookie、session和token三者的区别及使用.md) * [二十七、用js实现一下数组去重和排序,有哪些方法可以实现](二十七、用js实现一下数组去重和排序,有哪些方法可以实现.md) * [二十八、写一个方法,统计一下html文档的元素包括元素的数量](二十八、写一个方法,统计一下html文档的元素包括元素的数量.md) * [二十九、用js实现一个省市级联效果](二十九、用js实现一个省市级联效果.md) * [三十、用js实现一个轮播图效果,简单说下原理](三十、用js实现一个轮播图效果,简单说下原理.md) * [三十一、请你实现一个大文件上传和断点续传](三十一、请你实现一个大文件上传和断点续传.md) * [三十二、什么是模块化开发?谈下AMD、CMD、CommonJs和ES6的区别](三十二、什么是模块化开发?谈下AMD、CMD、CommonJs和ES6的区别.md) * [三十三、es6了解吗?说几个常见的新特性,set和weakSet的区别是什么](三十三、es6了解吗?说几个常见的新特性,set和weakSet的区别是什么.md) * [三十四、解构赋值的用法了解吗?如何实现对象和数组的嵌套和重命名](三十四、解构赋值的用法了解吗?如何实现对象和数组的嵌套和重命名.md) * [三十五、谈谈你对promise的用法和理解](三十五、谈谈你对promise的用法和理解.md) * [三十六、谈谈你对es6中的Generator函数的认识](三十六、谈谈你对es6中的Generator函数的认识.md) * [三十七、谈一下async-await的实现原理](三十七、谈一下async-await的实现原理.md) * [三十八、用js实现一下观察者模式?简单说一下原理](三十八、用js实现一下观察者模式?简单说一下原理.md) * [三十九、了解JavaScript中的装饰器吗?聊一下JS中的getter与setter的用法](三十九、了解JavaScript中的装饰器吗?聊一下JS中的getter与setter的用法.md) * [四十、聊一下正则表达式里的常见用法](四十、聊一下正则表达式里的常见用法.md)