
Web前端面试
文章平均质量分 60
nenliu
这个作者很懒,什么都没留下…
展开
-
Web前端面试题——HTML/CSS部分理解题
1.盒子模型(1)是什么:每个元素被表示为一个矩形的盒子,由四部分组成:内容(content)、内边距(padding)、边框(border)、外边距(margin)。它在页面中所占的实际大小(宽高)是content+padding+border+margin之和。(2)盒模型有两种:标准盒模型(W3C盒模型)、IE盒模型。(3)两种盒模型的区别:标准盒模型内容大小就是conten...原创 2018-09-14 08:38:38 · 22919 阅读 · 2 评论 -
剑指offer——二维数组中的查找
题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。实现代码1:function Find(target, array){ var row=array.length; var col=array[0].length; var rowInd=0; ...原创 2018-03-07 16:56:03 · 196 阅读 · 0 评论 -
算法——堆排序(Heapsort)
首先需要说明一下“堆”这个数据结构:完全二叉树(Complete Binary Tree):若设二叉树的深度为h,除第h层外,其他各层(1~h-1)的结点都达到最大个数,第h层所有的结点都连续集中在最左边,这就是完全二叉树。堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。堆的示意图:上图中,我们对堆中的结...原创 2018-04-10 15:16:56 · 290 阅读 · 0 评论 -
算法——希尔排序(ShellSort)
希尔排序,又称缩小增量排序,也是一种插入排序方法。它与插入排序的不同之处在于,它会优先比较距离较远的元素。希尔排序的核心在于间隔序列的设定。既可以提前设定好间隔序列,也可以动态地定义间隔序列。希尔排序的基本思想是,将整个待排序记录序列分割成若干个子序列,然后对每一个子序列进行直接插入排序。具体如下:(1)先取一个正整数分成d1,把全部记录d1个组,所有距离为d1的倍数的记录看成一组,然后在各组内进...原创 2018-04-10 15:16:35 · 379 阅读 · 0 评论 -
javascript——数组去重
面视频考数组去重有一下集中常用方法:1.双层循环(适用该法,因为兼容性好):function unique(array){ var res=[]; for(var i=0;i<array.length;i++){ for(var j=0;j<res.length;j++){ if(array[i]===res[j]){ break; } } if(j...原创 2018-04-10 15:16:07 · 252 阅读 · 0 评论 -
HTTP缓存
起源:通过网络获取内容既缓慢,成本又高。大的响应需要在客户端和服务器之间进行多次往返通信,这样拖延了浏览器可以使用和处理内容的时间,同时也增加了访问者的数据成本。所以缓存和重用已获取的资源能够有效地提升网站与应用的性能。web缓存能够减少延迟与网络阻塞,进而减少显示某个资源所用的时间。借助HTTP缓存,web站点变得更具有响应性。缓存:缓存是一种保存资源副本并在下次请求时直接使用该副本的技术。...原创 2018-09-14 08:39:47 · 933 阅读 · 0 评论 -
面试系列——变量提升
本文纯粹是无意间看到知乎一篇前端面试总结,作为面试官角度分析的一篇文章,深有感触。附上链接:https://zhuanlan.zhihu.com/p/25855075写给最初的我。#一个不起眼的问题:for(var i=0;i<5;i++){ setTimeout(function(){console.log(new Date,i)},1000);}console.log(new Da...转载 2018-04-10 15:40:02 · 406 阅读 · 0 评论 -
算法——归并排序(Mergesort)
归并排序算法简单来说就是利用分治的策略来解决排序问题。(1)假设待排序数组的长度为n。首先将数组分成两个长度为n/2的数组(2)重复步骤1,直至拆分后的数组长度为1,可以认为原数组最终拆分成了n个有序的长度为1的数组(以上可以理解为从上往下生成一个二叉树的过程)(3)从下往上,分别将二叉树节点的两个子元素数组进行两两合并,最终得到一个有序的长度为n的数组归并排序的时间复杂度:O(nlogn),是一...原创 2018-02-27 16:42:38 · 373 阅读 · 0 评论 -
JS编程——合并两个有序数组
问题描述:已知有两个升序排序的数组arr1,arr2,现要求将其合并为一个单调非递减的数组,并将其输出。解决思路:归并排序时间复杂度:O(n)代码:function mergeArray(arr1,arr2){ var ind1=0; //标记arr1的对比元素的初始索引值 var ind2=0; //标记arr2的对比元素的初始索引值 var arr=[]; //作为输出的新数组 whi...原创 2018-02-27 15:32:39 · 5658 阅读 · 0 评论 -
CSS布局——两栏布局
题外话:心情不好想虐虐自己。两栏布局要求说明:左侧固定宽度,右侧自适应大小HTML文档结构如下: <body> <div class="outer"> <div calss="inner left">这是左边</div> <div class="inner right">这是右边&a原创 2018-09-14 08:39:00 · 303 阅读 · 0 评论 -
算法——二分法查找(binarySearch)
二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法。二分法查找的思路如下:(1)首先,从数组的中间元素开始搜索,如果该元素正好是目标元素,则搜索过程结束,否则执行下一步。(2)如果目标元素大于/小于中间元素,则在数组大于/小于中间元素的那一半区域查找,然后重复步骤(1)的操作。(3)如果某一步数组为空,则表示找不到目标元素。二分法查找的时间复杂度O(logn)。非递归算法:func...原创 2018-04-11 14:52:35 · 170724 阅读 · 18 评论 -
算法——随机洗牌算法shuffle
要求:给定一个长度为n的有序数组,要求将其完全打乱,每个元素在任何位置出现的概率均为1/n。随机洗牌算法有好几个,这里讲其中的一个,Fisher-Yates shuffle算法(时间复杂度为O(n)),其思路如下:(1)从数组中随机选取一个数p。(2)将p与数组中最后(也可以是最前)的元素交换。(如果随机选中的是最后的元素,则相当于没有发生交换)(3)去掉最后的元素(这里并没有删除操作,而是缩小索原创 2018-01-19 17:41:20 · 2968 阅读 · 0 评论 -
Web前端面试——HTTP部分
1.一次完整的HTTP事务流程(1)域名解析(2)发起TCP的三次握手(3)建立TCP连接后发起http请求(4)服务器响应http请求,浏览器得到HTML代码(5)浏览器解析HTML代码,并请求HTML代码中的资源(6)浏览器对页面进行渲染呈现给用户(7)连接结束2.用什么解析成IP?从网址到IP地址的转换,称为DNS解析,DNS解析是一个递归查询的过程,具体...原创 2018-09-14 08:39:17 · 45635 阅读 · 4 评论 -
算法——插入排序(InsertSort)
插入排序的思路就是将一个记录插入到已经排好序的有序表中,从而得到一个新的,记录数增1的有序列表,具体步骤如下:(1)将原数组的第一个数看成是一个有序序列(2)取下一个元素,在已经排序的有序序列中从后向前扫描(3)如果有序序列中某元素大于新元素,则将该元素后移一位(4)重复步骤(3),直到某元素小于或等于新元素,然后将新元素插入到该元素下一个位置(5)重复步骤(2)~(4),直到得到一个长度等于原数...原创 2018-04-10 15:17:39 · 331 阅读 · 0 评论 -
算法——冒泡排序(BubbleSort)
冒泡排序是一种交换排序,它的思路主要是两两比较相邻元素,如果反序则交换,知道没有反序的记录为止。具体步骤如下:(1)依次两两比较相邻的元素,如果第一个元素比第二个大,则进行交换(2)经过第一轮比较后,最大的数已经出现在数组的最后一个位置(3)对除了数组最后一个元素外的所有元素重复步骤(1),倒数第二大的数出现在数组的倒数第二个位置(4)重复步骤(1)~(3),直到排序完毕冒泡排序的时间复杂度和空间...原创 2018-04-10 15:15:42 · 1214 阅读 · 0 评论 -
算法——选择排序(SelectSort)
选择排序的思想:(1)从数组的开头起,以第一个元素作为初始比较对象,遍历整个数组,选择出最小的元素放在数组的第一个位置(2)然后再从第二个元素开始,以第二个元素作为初始比较对象,遍历未知顺序的数组部分,选择出最小的元素放在数组的第二个位置(3)对后面的元素分别重复上述步骤,直到所有的数据完成排序选择排序的时间复杂度和空间复杂度:(1)最优情况下和最差情况下的事件复杂度均为O(n原创 2018-01-29 20:39:57 · 1062 阅读 · 0 评论 -
Web前端面试——JavaScript部分理解题
1.JavaScript数据类型(1)六种基本数据类型:number、string、boolean、undefined、null、symbol(新)。(2)null和undefined的区别:null表示一个对象被定义了,值为“空值”,而undefined表示不存在这个值;typeof null结果为object,typeof undefined结果为undefined。通常用undefi...原创 2018-09-14 08:37:29 · 419 阅读 · 0 评论 -
算法——快速排序(Quicksort)
快速排序的思路:(1)在数据集中,选择一个元素作为“基准(pivot)”。(基准值可以任意选择,但是选择中间的值比较容易理解)(2)所有小于“基准”的元素,都移到“基准”的左边,所有大于“基准”的元素,都移到“基准”的右边。(3)对“基准”左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。快速排序的时间复杂度和空间复杂度:(1)最优情况下的时间复杂度为O(nlogn);...转载 2018-02-12 23:03:48 · 585 阅读 · 0 评论