前言 由于最近在整理前端常见面试题,整理的文章标题可能有些乱,导致后期不好查找,特此总结目录,目录会与面试题同步更新。 使用谷歌浏览器的可以根据关键字使用F3搜索功能进行查找。 目录 一、前端常见面试题 (一)@郝晨光 1. HTML5有哪些新特性?如何处理HTML5新标签的浏览器兼容问题?如何区分HTML和HTML5? 2. css3中的transform有哪些属性?分别用来实现什么效果? 3. localStorage、sessionStorage、cookie有什么区别? 4. 什么是同源策略?你都知道哪些解决跨域的方法? 5. 列举JavaScript的基本数据类型和引用数据类型 6. Vue2.0的生命周期有哪些?分别解释其意思 7. 详述组件通信 8. 详述导航守卫 9. v-show和v-if有什么区别?及使用场景 10. v-for和v-if的优先级 二、前端常见面试题(二)@郝晨光 1. Vue常用的指令 2. Vue常用修饰符 3. v-on可以监听多个方法吗? 4. Vue中key值的作用 5. Vue组件中的data为什么必须是函数 三、前端常见面试题(三)@郝晨光 1. keep-alive组件的作用 2. 单页面应用和多页面应用区别及优缺点 3. 什么是计算属性?什么情况使用? 4. computed、methods的区别 5. 什么是自定义指令,有哪些钩子函数及自定义指令的使用场景 6. 父组件获取异步动态数据传递给子组件,报错如何解决? 7. vue-router参数传递方法详述及区别 四、前端常见面试题(四)@郝晨光 1. 什么是Vuex?详述Vuex的工作流程 2. 详述Vuex的核心属性及使用 3. Vue和Jquery的区别 4. Vue中的slot是什么? 5. SPA首屏加载慢,该如何解决? 五、前端常见面试题(五)@郝晨光 1. 对MVC、MVP、MVVM的理解 2. 谈谈对$nextTick的理解及使用场景 3. 渐进式框架的理解 4. 组件样式属性 scoped 问题及解决方法 5. Vue中的双向数据绑定是如何实现的 6. 详述虚拟DOM中的diff算法 7. Vue提供了几种脚手架模板 8. 常见的几种MVVM的实现方式 六、前端常见面试题(六)@郝晨光 1. Vue路由的实现原理 2. SPA 路由history模式上线后刷新404 3. router的区别 4. 自定义过滤器详解 5. assets和static/public的区别 七、前端常见面试题(七)@郝晨光 1. 简述同步和异步的区别 2. 数组去重(手写代码) 3. 在JavaScript中什么是伪数组?如何将伪数组转化为标准数组 4. SPA路由history模式,打包上线都遇到了哪些问题?你是如何解决的? 5. JavaScript中callee和caller的作用 八、前端常见面试题(八)@郝晨光 1. ES5/ES6 的继承除了写法以外还有什么区别? 2. http状态码有哪些?分别是什么意思? 3. 浏览器是如何渲染页面的? 4. typeof 和 instanceof 相同点与不同点 5. 如何解决回调地狱?请手写代码 九、前端常见面试题(九)@郝晨光 1. 请详解移动端点透,为什么会发生点透?描述发生的场景及解决方案 2. 移动端为什么会有一像素问题?如何解决? 3. 你还知不知道其他移动端的常见问题? 十、前端常见面试题(十)@郝晨光 1. new操作符干了什么? 2. null和undefined的区别? 3. eval是做什么的? 4. iframe的优缺点 十一、前端常见面试题(十一)@郝晨光 1. 什么是事件委托?为什么要用事件委托? 2. 你如何优化自己的代码? 3. 什么是盒模型? 4. 行内、块元素、空元素分别举例 5. src和href的区别 十二、前端常见面试题(十二)@郝晨光 1. link和@import的区别 2. HTML5为什么只需要写<!DOCTYPE HTML>? 3. Doctype作用,标准模式和兼容模式有什么区别 4. 请写出html5新增的API 5. CSS优先级算法如何计算? 十三、前端常见面试题(十三)@郝晨光 1. 列举三种强制类型转换和两种隐式类型转换 2. JavaScript typeof返回哪些数据类型 3. window.onload 和document.ready的区别 4. == 和 === 的区别 5. style标签写在body前和body后有什么区别 十四、前端常见面试题(十四)@郝晨光 1. 怎样添加、移除、复制、创建、查找节点 2. JQuery的事件委托on、live、delegate之间有什么区别 3. 描述一次完整的http请求过程(输入url敲回车发生了什么) 十五、前端常见面试题(十五)@郝晨光 1. 什么是函数防抖和函数节流?有什么区别? 2. 什么是函数柯里化及有什么用? 3. 谈谈模块化开发 4. 谈谈你对作用域链的理解 5. 什么是深拷贝?什么是浅拷贝?如何实现一个深拷贝函数? 十六、前端常见面试题(十六)@郝晨光 1. 用正则和非正则,实现一个字符串转为驼峰 2. 判断一个字符串中出现次数最多的字符,并统计这个次数 3. 写一个获取非行间样式的函数 4. 字符串反转,如将 '12345678' 变成 '87654321' 5. 将数字 12345678 转化成 RMB 形式 如: 12,345,678 十七、前端常见面试题(十七)@郝晨光 1. 解释jsonp的原理 2. 在工作中你是如何优化自己的代码的? 3. axios是什么?如何使用?描述其实现登录的流程 十八、前端常见面试题(十八)@郝晨光 1. 手写promise封装axios 2. 详述前端性能优化的手段 3. 浏览器输入网址回车发生了什么 4. 列举你知道的浏览器内核 十九、前端常见面试题(十九)@郝晨光 1. 实现三栏布局,左右两栏固定宽度100px,中间栏自适应宽度,实现三列自适应等高 2. 随机选取 10 - 50 之间的 10 个数字,存入一个数组,并排序,并不能有重复 3. 写一个闭包的应用例子 4. 如何把函数add(1,2,3,4)的调用方式改为add(1)(2)(3)(4); 5. 在javascript中什么是伪数组?如何把伪数组转换为真实数组? 6. 异步加载JS的方式有哪些? 7. 什么是Polyfill? 8. 封装一个简单的ajax,返回Promise对象 9. 写一个简单的jsonp的实现。 二十、前端常见面试题(二十)@郝晨光 1. js的特性不包括; 2. 在javascript中,以下变量命名非法的是; 3. 下列正则表达式中,匹配首位是小写字母,其他位数是小写字母或者数字的最少两位字符串的是; 4. 以下代码输出结果为; 5. 在javascript中,以下代码的运行结果是; 6. 关于git和svn的说法正确的是? 7. 在JQuery中,对于以下代码; 8. 在javascript中,执行下面的代码后,结果是; 9. axios指的是什么?如何使用?描述其实现注册功能流程。 10. 通过npm run build打包部署到服务器上有时会出现页面空白的问题,一般是什么原因?请具体描述;如果打包后没有部署在服务器根目录,而是在H5-page中进行部署,需要做哪些操作。 11. 实现下图的效果,获取今天的日期,以及随后六天的日期,并对应是周几。 12. 用YYYY-MM-DD hh:mm:ss 的方式输出当前的时间,比如当前时间是 2018年4月18日17时42分23秒,则输出2018-04-18 17:42:23 13. 定义一个字符串,并输出这个字符串中的逗号和数字的个数 二十一、前端常见面试题(二十一)@郝晨光 1. URL转对象 2. 不使用循环返回数组 3. 事件委托的实现 4. 冒泡排序 5. 输出字符串中出现次数最多的字符及其出现次数 6. 判断是否是回文 7. 千分符,将数字格式化成RMB格式 8. 字符串转驼峰 9. 找出数组最大的差值,最大值减最小值的差 10. 数组去重 11. 获取非行间样式 12. 斐波那契数列 二十二、前端常见面试题(二十二)@郝晨光 1. vw、vh、rem、em、px的区别 2. 前端安全:xss攻击和CSRF攻击 3. http和https的区别 4. 优雅降级和逐渐增强 5. 什么是堆和栈 6. 什么是BFC 7. 什么是闭包,闭包的优缺点,内存泄露怎么处理,闭包的使用场景 8. 内存泄露 9. 将多维数组转化为一维数组 10. JS继承的方法及优缺点 结言 感谢您的查阅,本文由郝晨光整理并总结,代码冗余或者有错误的地方望不吝赐教;菜鸟一枚,请多关照。