![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
web前端面试题
撩课学院
这个作者很懒,什么都没留下…
展开
-
36-撩课大前端-面试宝典-第三十六篇
1.介绍一下你对浏览器内核的理解?主要分成两部分:渲染引擎(layout engineer或Rendering Engine)和JS引擎。渲染引擎:负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它...原创 2019-01-10 09:13:55 · 281 阅读 · 0 评论 -
32-撩课大前端-面试宝典-第三十二篇
1.module、export、import是什么,有什么作用?module、export、import是ES6用来统一前端模块化方案的设计思路和实现方案。export、import的出现统一了前端模块化的实现方案,整合规范了浏览器/服务端的模块化方法,用来取代传统的AMD/CMD、requireJS、seaJS、commondJS等等一系列前端模块不同的实现方案,使前端模块化更加统一...原创 2019-01-05 09:19:07 · 485 阅读 · 4 评论 -
27-撩课大前端-面试宝典-第二十七篇
1.浏览器缓存?浏览器缓存分为强缓存和协商缓存。当客户端请求某个资源时,获取缓存的流程如下:先根据这个资源的一些 http header 判断它是否命中强缓存,如果命中,则直接从本地获取缓存资源,不会发请求到服务器;当强缓存没有命中时,客户端会发送请求到服务器,服务器通过另一些request header验证这个资源是否命中协商缓存,称为http再验证,如果命中,服务器将请求返回...原创 2018-12-31 10:15:51 · 293 阅读 · 0 评论 -
26-撩课大前端-面试宝典-第二十六篇
1.vuejs与angularjs以及react的区别?1.与AngularJS的区别相同点:都支持指令:内置指令和自定义指令。都支持过滤器:内置过滤器和自定义过滤器。都支持双向数据绑定。都不支持低端浏览器。不同点:1.AngularJS的学习成本高,比如增加了Dependency Injection特性,而Vue.js本身提供的API都比较简单、直观。2.在性能上,Angu...原创 2018-12-30 10:57:57 · 305 阅读 · 0 评论 -
22-撩课大前端-面试宝典-第二十二篇
1.mvvm和mvc区别?它和其它框架(jquery)的区别是什么?哪些场景适合?mvc和mvvm其实区别并不大。都是一种设计思想。主要就是mvc中Controller演变成mvvm中的viewModel。mvvm主要解决了mvc中大量的DOM 操作使页面渲染性能降低,加载速度变慢,影响用户体验。区别:vue数据驱动,通过数据来显示视图层而不是节点操作。场景:数...原创 2018-12-25 09:37:31 · 268 阅读 · 0 评论 -
17-撩课大前端-面试宝典-第十七篇
1.apply, call和bind有什么区别?三者都可以把一个函数应用到其他对象上,注意不是自身对象.apply,call是直接执行函数调用,bind是绑定,执行需要再次调用.apply和call的区别是apply接受数组作为参数,而call是接受逗号分隔的无限多个参数列表.代码如下: function Person() { } Person.prototype...原创 2018-12-19 10:04:53 · 238 阅读 · 0 评论 -
31-撩课大前端-面试宝典-第三十一篇
1.web storage和cookie的区别?Web Storage的概念和cookie相似,区别是它是为了更大容量存储设计的。Cookie的大小是受限的,并且每次你请求一个新的页面的时候Cookie都会被发送过去,这样无形中浪费了带宽,另外cookie还需要指定作用域,不可以跨域调用除此之外,WebStorage拥有setItem,getItem,removeItem,cl...原创 2019-01-04 09:02:24 · 282 阅读 · 0 评论 -
21-撩课大前端-面试宝典-第二十一篇
1.对async、await的理解,内部原理?①async---声明一个异步函数:自动将常规函数转换成promise,返回值也是一个promise对象,只有async函数内部的异步操作执行完,才会执行then方法指定的回调函数,内部可以使用await; ②await--暂停异步的功能执行:放在promise调用之前,await强制其他代码等待,...原创 2018-12-24 09:33:03 · 250 阅读 · 0 评论 -
16-撩课大前端-面试宝典-第十六篇
1.for循环中的作用域问题?写出以下代码输出值,尝试用es5和es6的方式进行改进输出循环中的i值。for (var i=1; i<=5; i++) { setTimeout(function timer() { console.log(i); }, i*1000); }输出5个6,因为回调函数在for循环之后执行,所有函数共享一个i的引用。...原创 2018-12-18 10:50:26 · 221 阅读 · 0 评论 -
20-撩课大前端-面试宝典-第二十篇
1.实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制考察点1:对于基本数据类型和引用数据类型在内存中存放的是值还是指针这一区别是否清楚考察点2:是否知道如何判断一个变量是什么类型的考察点3:递归算法的设计// 方法一:Object.prototype.clone = funct...原创 2018-12-23 09:05:05 · 245 阅读 · 0 评论 -
25-撩课大前端-面试宝典-第二十五篇
1.web前端开发,如何提高页面性能优化?内容方面:1.减少 HTTP 请求 (Make Fewer HTTP Requests)2.减少 DOM 元素数量 (Reduce the Number of DOM Elements)3.使得 Ajax 可缓存 (Make Ajax Cacheable)针对CSS:1.把 CSS 放到代码页上端 (Put Stylesheets ...原创 2018-12-28 08:46:33 · 262 阅读 · 0 评论 -
15-撩课大前端-面试宝典-第十五篇
1.请描述一下 cookies,sessionStorage 和 localStorage 的区别? cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。 cookie数据始终在同源的http请求中携带(即使不需要),记会在浏览器和服务器间来回传递。 sessionStorage和localStorage不会自动把数据发给服务器,仅...原创 2018-12-17 09:28:34 · 223 阅读 · 0 评论 -
28-撩课大前端-面试宝典-第二十八篇
1.用setTimeout()方法来模拟setInterval()与setInterval()之间的什么区别?首先来看setInterval的缺陷,使用setInterval()创建的定时器确保了定时器代码规则地插入队列中。这个问题在于:如果定时器代码在代码再次添加到队列之前还没完成执行,结果就会导致定时器代码连续运行好几次。而之间没有间隔。不过幸运的是:javascript引擎...原创 2019-01-01 10:43:23 · 357 阅读 · 0 评论 -
23-撩课大前端-面试宝典-第二十三篇
1、为什么用Nodejs,它有哪些优缺点?优点:事件驱动,通过闭包很容易实现客户端的生命活期。不用担心多线程,锁,并行计算的问题V8引擎速度非常快对于游戏来说,写一遍游戏逻辑代码,前端后端通用缺点:nodejs更新很快,可能会出现版本兼容nodejs还不算成熟,还没有大制作nodejs不像其他的服务器,对于不同的链接,不支持进程和线程操作2、什么是错误优先的回调函数?...原创 2018-12-26 08:52:26 · 241 阅读 · 0 评论 -
39-撩课大前端-面试宝典-第三十九篇
1.谈谈你对webpack的看法?WebPack 是一个模块打包工具,你可以使用WebPack管理你的模块依赖,并编绎输出模块们所需的静态文件。它能够很好地管理、打包Web开发中所用到的`HTML、javaScript、CSS 以及各种静态文件(图片、字体等),让开发过程更加高效。对于不同类型的资源,webpack 有对应的模块加载器。webpack 模块打包器会分析...原创 2019-01-15 09:49:43 · 282 阅读 · 0 评论 -
35-撩课大前端-面试宝典-第三十五篇
1.React 中 refs 的作用是什么?Refs 是 React 提供给我们的安全访问 DOM 元素或者某个组件实例的句柄。我们可以为元素添加 ref 属性然后在回调函数中接受该元素在 DOM 树中的句柄,该值会作为回调函数的第一个参数返回:class CustomForm extends Component { handleSubmit = () => { co...原创 2019-01-09 09:14:51 · 282 阅读 · 0 评论 -
41-撩课大前端-面试宝典-第四十一篇
1.DNS解析过程?若是新申请的域名如何查找DNS?DNS是应用层协议,事实上他是为其他应用层协议工作的,包括不限于HTTP和SMTP以及FTP,用于将用户提供的主机名解析为ip地址。具体过程如下:(1)浏览器缓存: 当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的IP地址(若曾经访问过该域名且没有清空缓存便存在);(2)系统缓存: 当浏览...原创 2019-01-19 09:24:23 · 326 阅读 · 0 评论 -
38-撩课大前端-面试宝典-第三十八篇
1.JavaScript实现二分法查找?二分法查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法。查找过程可以分为以下步骤:(1)首先,从有序数组的中间的元素开始搜索, 如果该元素正好是目标元素(即要查找的元素),则搜索过程结束,否则进行下一步。(2)如果目标元素大于或者小于中间元素, 则在数组大于或小于中间元素的那一半区域查找,然后重复第一步的操作。(3)如果某一步...原创 2019-01-14 09:56:45 · 264 阅读 · 0 评论 -
34-撩课大前端-面试宝典-第三十四篇
1.React 中 keys 的作用是什么?Keys 是 React 用于追踪哪些列表中元素被修改、被添加或者被移除的辅助标识。render () { return ( <ul> {this.state.todoItems.map(({item, key}) => { return <li key={key}>{item...原创 2019-01-08 09:22:04 · 278 阅读 · 0 评论 -
30-撩课大前端-面试宝典-第三十篇
1.什么叫优雅降级和渐进增强?优雅降级:Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会针对旧版本的IE进行降级处理了,使之在旧式浏览器上以某种形式降级体验却不至于完全不能用。如:border-shadow渐进增强:从被所有浏览器支持的基本功能开始,逐步地添加那些只有新版本浏览器才支持的功能,向页面增加不影响基础浏览器的额外样式和功能的。当浏...原创 2019-01-03 09:31:39 · 292 阅读 · 0 评论 -
37-撩课大前端-面试宝典-第三十七篇
1.JavaScript实现二分法查找?二分法查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法。查找过程可以分为以下步骤:(1)首先,从有序数组的中间的元素开始搜索, 如果该元素正好是目标元素(即要查找的元素),则搜索过程结束,否则进行下一步。(2)如果目标元素大于或者小于中间元素, 则在数组大于或小于中间元素的那一半区域查找,然后重复第一步的操作。(3)如果某一步...原创 2019-01-12 09:04:35 · 316 阅读 · 0 评论 -
33-撩课大前端-面试宝典-第三十三篇
1.CommonJS 中的 require/exports 和 ES6 中的 import/export 区别?CommonJS 模块的重要特性是加载时执行,即脚本代码在 require 的时候,就会全部执行。一旦出现某个模块被”循环加载”,就只输出已经执行的部分,还未执行的部分不会输出。ES6 模块是动态引用,如果使用 import 从一个模块加载变量,那些变量不会被缓存,...原创 2019-01-07 08:59:59 · 504 阅读 · 0 评论 -
40-撩课大前端-面试宝典-第四十篇
1.git fetch和git pull的区别?git pull:相当于是从远程获取最新版本并merge到本地 git fetch:相当于是从远程获取最新版本到本地,不会自动merge2.说说网络分层里七层模型是哪七层?应用层:应用层、表示层、会话层(从上往下)(HTTP、FTP、SMTP、DNS)传输层(TCP和UDP)网络层(IP)物理和数据链路层(以太网)每一层...原创 2019-01-17 10:05:43 · 297 阅读 · 0 评论 -
29-撩课大前端-面试宝典-第二十九篇
1.https协议的优点?使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。谷歌曾在2014年8月份调整搜索引...原创 2019-01-02 09:05:45 · 296 阅读 · 0 评论 -
24-撩课大前端-面试宝典-第二十四篇
1.下面的代码将输出什么?for (var i = 0; i < 5; i++) { setTimeout(function() { console.log(i); }, i * 1000 );}闭包在这里能起什么作用?上面的代码不会按预期显示值0,1,2,3,和4,而是会显示5,5,5,5,和5。原因是,在循环中执行的每个函数将整个循环完成之后被执行,因此,将会引用...原创 2018-12-27 09:11:57 · 268 阅读 · 0 评论 -
19-撩课大前端-面试宝典-第十九篇
1.实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制考察点1:对于基本数据类型和引用数据类型在内存中存放的是值还是指针这一区别是否清楚考察点2:是否知道如何判断一个变量是什么类型的考察点3:递归算法的设计// 方法一:Object.prototype.clone = funct...原创 2018-12-21 09:27:22 · 250 阅读 · 0 评论 -
18-撩课大前端-面试宝典-第十八篇
1.如何判断一个变量是对象还是数组?判断数组和对象分别都有好几种方法,其中用prototype.toString.call()兼容性最好。function isObjArr(variable){ if (Object.prototype.toString.call(value) === "[object Array]") { console.log('va...原创 2018-12-20 09:34:39 · 230 阅读 · 0 评论 -
09-撩课大前端-面试宝典-第九篇
1. 请用至少3中方式实现数组去重?方法一: indexOfvar arr1=[1,2,3,4,5,4,3,2,1]; function repeat1(arr){ for(var i=0,arr2=[];i&lt;arr.length;i++){ if(arr2.indexOf(arr[i])==-1){ arr2.push(arr[i]); ...原创 2018-11-23 08:35:49 · 246 阅读 · 0 评论 -
07-撩课大前端-面试宝典-第七篇
1. 你能描述一下渐进增强和优雅降级之间的不同吗?定义:优雅降级(graceful degradation):一开始就构建站点的完整功能,然后针对浏览器测试和修复渐进增强(progressive enhancement): 一开始只构建站点的最少特性,然后不断针对各浏览器追加功能。优雅降级和渐进增强都关注于同一网站在不同设备里不同浏览器下的表现程度。区别:“优雅降级”...原创 2018-11-19 09:51:53 · 238 阅读 · 0 评论 -
08-撩课大前端-面试宝典-第八篇
1. 说说你对作用域链的理解?作用域链的作用是保证执行环境里有权访问的变量和函数是有序的,作用域链的变量只能向上访问,变量访问到window对象即被终止,作用域链向下访问变量是不被允许的;作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。2. 请说说JavaScript原型,原型链 ?原型: 当我们访问一个对象的属性时, 每个对象都会在...原创 2018-11-21 08:22:38 · 229 阅读 · 0 评论 -
06-撩课大前端-面试宝典-第六篇
1.请说明ECMAScript, JavaScript, Jscript之间的关系?ECMAScript提供脚本语言必须遵守的规则、细节和准则,是脚本语言的规范。比如:ES5,ES6就是具体的一js版本。JavaScript是ECMAScript的一个分支版本, JavaScript 实现了多数 ECMA-262 中描述的 ECMAScript 规范,但存在少数差异。 JScr...原创 2018-11-16 09:25:33 · 242 阅读 · 0 评论 -
04-撩课大前端—面试宝典—第四篇
1. 如何实现瀑布流?瀑布流布局的原理:1) 瀑布流布局要求要进行布置的元素等宽, 然后计算元素的宽度, 与浏览器宽度之比,得到需要布置的列数;2) 创建一个数组,长度为列数, 里面的值为已布置元素的总高度(最开始为0);3) 然后将未布置的元素依次布置到高度最小的那一列, 就得到了瀑布流布局;4) 滚动加载, scroll事件得到scrollTo...原创 2018-11-12 15:07:23 · 287 阅读 · 0 评论 -
05-撩课大前端-面试宝典-第五篇
1.写一个深度克隆方法(es5)?/** * 深拷贝 * @param {object}fromObj 拷贝的对象 * @param {object}toObj 目标对象 */function deepCopyObj2NewObj(fromObj, toObj) { for(var key in fromObj){ // 1. 取出键值对 var ...原创 2018-11-14 09:06:01 · 228 阅读 · 0 评论 -
01-撩课大前端—面试宝典—第一篇
1. var的变量提升的底层原理是什么?JS引擎的工作方式是:1) 先解析代码,获取所有被声明的变量;2)然后在运行。也就是说分为预处理和执行两个阶段。变量提升:所有变量的声明语句都会被提升到代码头部。但是变量提升只对var命令声明的变量有效,如果一个变量不是用var命令声明的,就不会发生变量提升。js里的function也可看做变量,也存在变量提升情况。2. JS如何计算浏览器的...原创 2018-11-05 14:33:06 · 417 阅读 · 0 评论 -
02-撩课大前端—面试宝典—第二篇
1.伪类与伪元素的区别?1) 定义区别伪类 伪类用于选择DOM树之外的信息,或是不能用简单选择器进行表示的信息。前者包含那些匹配指定状态的元素,比如:visited,:active;后者包含那些满足一定逻辑条件的DOM树中的元素,比如:first-child,:first-of-type,:target。伪元素 伪元素为DOM树没有定义的虚拟元素。不同于其他选择器,它不...原创 2018-11-07 09:27:40 · 381 阅读 · 0 评论 -
11-撩课大前端-面试宝典-第十一篇
一、算法题部分1. 如何获取浏览器URL中查询字符串中的参数function getParamsWithUrl(url) { var args = url.split('?'); if (args[0] === url) { return ""; } var arr = args[1].split('&')...原创 2018-11-30 10:35:55 · 937 阅读 · 0 评论 -
14-撩课大前端-面试宝典-第十四篇
1. 请写出至少5个html5新增的标签,并说明其语义和应用场景?section:定义文档中的一个章节;nav:定义只包含导航链接的章节;header:定义页面或章节的头部;它经常包含 logo、页面标题和导航性的目录。footer:定义页面或章节的尾部;它经常包含版权信息、法律信息链接和反馈建议用的地址。aside:定义和页面内容关联度较低的内容,如果被删除,剩下的内容仍...原创 2018-12-06 09:21:47 · 258 阅读 · 0 评论 -
13-撩课大前端-面试宝典-第十三篇
1、前端需要注意哪些SEO?合理的title、description、keywords:搜索对着三项的权重逐个减小,title值强调重点即可,重要关键词出现不要超过2次,而且要靠前,不同页面title要有所不同;description把页面内容高度概括,长度合适,不可过分堆砌关键词,不同页面description有所不同;keywords列举出重要关键词即可语义化的HTML代码,符合W3...原创 2018-12-05 08:56:27 · 303 阅读 · 1 评论 -
12-撩课大前端-面试宝典-第十二篇
1、前端需要注意哪些SEO?合理的title、description、keywords:搜索对着三项的权重逐个减小,title值强调重点即可,重要关键词出现不要超过2次,而且要靠前,不同页面title要有所不同;description把页面内容高度概括,长度合适,不可过分堆砌关键词,不同页面description有所不同;keywords列举出重要关键词即可语义化的HTML代码,符合W3...原创 2018-12-03 08:53:18 · 308 阅读 · 0 评论 -
10-撩课大前端-面试宝典-第十篇
1. px和em的区别?px和em都是长度单位;区别是: px的值是固定的,指定是多少就是多少,计算比较容易。em得值不是固定的,并且em会继承父级元素的字体大小。浏览器的默认字体高都是16px;所以未经调整的浏览器都符合: 1em=16px;那么12px=0.75em, 10px=0.625em2. CSS 去掉inline-block元素间隙的几种方法?间隙是怎...原创 2018-11-28 08:31:39 · 229 阅读 · 2 评论