前端面试
猜不到我是谁
这个作者很懒,什么都没留下…
展开
-
js实现最大堆
有两个原始操作用于保证插入或删除节点以后堆是一个有效的最大堆或者最小堆:shiftUp(): 如果一个节点比它的父节点大(最大堆)或者小(最小堆),那么需要将它同父节点交换位置。这样是这个节点在数组的位置上升。shiftDown(): 如果一个节点比它的子节点小(最大堆)或者大(最小堆),那么需要将它向下移动。这个操作也称作“堆化(heapify)”。shiftUp 或者 shiftDo...原创 2020-02-16 15:30:05 · 1019 阅读 · 0 评论 -
Object.create()
Object.create(proto, [propertiesObject])//方法创建一个新对象,使用现有的对象来提供新创建的对象的proto。参数:proto : 必须。表示新建对象的原型对象,即该参数会被赋值到目标对象(即新对象,或说是最后返回的对象)的原型上。该参数可以是null, 对象, 函数的prototype属性 (创建空的对象时需传null , 否则会抛出TypeEr...原创 2019-11-14 15:33:49 · 316 阅读 · 0 评论 -
前端面试总结九
1.vue的diff算法Diff 作用Diff 的出现,就会为了减少更新量,找到最小差异部分DOM,只更新差异部分DOM就好了,这样消耗就会小一些,数据变化一下,没必要把其他没有涉及的没有变化的DOM 也替换了。Diff 做法Vue 只会对新旧节点中 父节点是相同节点 的 那一层子节点 进行比较,也可以说成是,只有两个新旧节点是相同节点的时候,才会去比较他们各自的子节点。最大的根节点一开...原创 2019-11-10 13:34:51 · 398 阅读 · 0 评论 -
JS实现合并多个有序数组
合并两个有序数组:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。(leetCode88)说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。/** * @param {number[]} n...原创 2019-11-07 12:19:55 · 1265 阅读 · 0 评论 -
JS数组中常用的方法总结
Array.isArray() 用于确定传递的值是否是一个 ArrayArray.isArray([1, 2, 3]); // trueArray.isArray({foo: 123}); // falseArray.isArray("foobar"); // falseArray.isArray(undefined); // falseArray.of() 返回一个由...原创 2019-11-07 10:41:09 · 137 阅读 · 0 评论 -
前端面试总结八
1.介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的?有两种, IE 盒子模型、W3C 盒子模型盒模型: 内容(content)、填充(padding)、边界(margin)、 边框(border);区 别: IE的content部分把 border 和 padding计算了进去2.PNG,GIF,JPG的区别及如何选GIF:256色无损,编辑 保存时候,不会损失...原创 2019-11-06 18:02:09 · 356 阅读 · 0 评论 -
JS实现两个链表的第一个公共结点
分析:首先要理解什么是公共节点,并不是两个节点的值相同就是公共节点。而是在第一链表和第二链表中都存在一个节点,该节点往后的子链表在两个链表中是相同的。方法一最直观就是暴力法,在第一链表上顺序遍历每个节点,每遍历到一个节点,就在第二个链表上顺序遍历每个节点。如果在第二个链表上有一个节点和第一个链表上的节点一样,则说明两个链表在这个节点上重合,但是这种方法的复杂度为O(m * nm∗n)(第一...原创 2019-11-06 09:52:27 · 451 阅读 · 0 评论 -
js实现二叉查找树的建立、插入、删除、遍历操作
概念二叉排序树(二叉查找树),它或者是一颗空树,或者是具有以下性质的二叉树:任意一个结点左子树上的所有结点值均小于该结点值任意一个结点右子树上的所有结点值均大于该结点值例如下图:插入和建立二叉排序树结点的数据结构function newNode(value){ this.value = value; this.left = null; this.righ...原创 2019-11-05 23:50:14 · 581 阅读 · 1 评论 -
关于二叉树的前序、中序、后序三种遍历
二叉树遍历分为三种:前序、中序、后序,其中序遍历最为重要。为啥叫这个名字?是根据根节点的顺序命名的。比如上图正常的一个满节点,A:根节点、B:左节点、C:右节点,前序顺序是ABC(根节点排最先,然后同级先左后右);中序顺序是BAC(先左后根最后右);后序顺序是BCA(先左后右最后根)。比如上图二叉树遍历结果前序遍历:ABCDEFGHK中序遍历:BDCAEHGKF后序遍历:DCBH...转载 2019-11-05 23:14:55 · 128 阅读 · 0 评论 -
JS 二维数组回形遍历
Given an n x n array, return the array elements arranged from outermost elements to the middle element, traveling clockwise.array = [[1,2,3], [4,5,6], [7,8,9]]snail(array) #=> [...原创 2019-11-04 12:43:43 · 965 阅读 · 0 评论 -
前端面试总结七
1.JS的事件冒泡和事件捕获事件事件是文档和浏览器窗口中发生的特定的交互瞬间。事件是javascript应用跳动的心脏,也是把所有东西黏在一起的胶水,当我们与浏览器中web页面进行某些类型的交互时,事件就发生了。事件可能是用户在某些内容上的点击,鼠标经过某个特定元素或按下键盘上的某些按键,事件还可能是web浏览器中发生的事情,比如说某个web页面加载完成,或者是用户滚动窗口或改变窗口大小。...原创 2019-11-04 11:30:18 · 463 阅读 · 0 评论 -
前端面试总结六
1.如何获取UA?通过JS获取浏览器UA(User Agent,用户代理)<script>function whatBrowser() {//获取完整的浏览器名称document.Browser.Name.value=navigator.appName; //获取浏览器的版本,一般不与实际的浏览器版本对应document.Browser.Version.value=nav...原创 2019-11-01 11:08:24 · 228 阅读 · 0 评论 -
前端面试总结五
1.OSI七层与TCP/IP四/五层网络架构OSI七层模型:开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。OSI七层参考模型的各个层...原创 2019-11-01 10:15:50 · 266 阅读 · 0 评论 -
前端面试总结四
1.Canvas和SVG的区别Canvas和SVG是html5支持的两种可视化技术。基于这两种技术,诞生了很多可视化工具。Echarts是基于Canvas技术的可视化工具,底层封装了原生的JavaScript的绘图 API。我们很容易联想到另一个同样很优秀的web前端可视化库D3,D3是也最流行的可视化库之一,它被很多其他的表格插件所使用。D3底层基于SVG技术,与Canvas完全不一样,SV...原创 2019-10-29 10:12:36 · 718 阅读 · 0 评论 -
前端面试总结三
离线资源前端兼容CSS3GPU加速SPDY协议单页面应用GZIP压缩CSS表达式和CSS滤镜HTTP长连接、短连接安全重点:类安全、csrf、xssVue原理vuexvue-router的两种模式及区别webpack是什么,用过什么...原创 2019-10-26 10:32:03 · 1009 阅读 · 0 评论 -
经典九大排序
九大排序排序是数据结构体系中最重要的内容之一,这一块必须要非常熟练的掌握,应该做到可以立马写出每个排序的代码,有多种实现方法的必须多种都能很快写出来,当然对各个排序的性能的了解也是基础且重要的。我们先对排序这一块进行一个整体的把握。内排序:在对待排序数据存放在内存中进行的排序过程。外排序:待排数据量太大,无法一次性将所有待排序数据放入内存中,在排序过程中需要对磁盘等外部储存器进行访问。比...原创 2019-10-23 16:35:16 · 514 阅读 · 1 评论 -
前端面试总结二
1.关于同步加载、异步加载、延迟加载、预加载(form和ajax之间的区别)同步加载:<script src="http://yourdomain.com/script.js"></script> (阻塞模式)会阻止浏览器的后续处理,停止对后续文件的解析、执行,如图像的渲染。浏览器之所以会采用同步模式,是因为加载的js文件中对dom的操作、重定向、输出documen...原创 2019-10-18 01:40:24 · 437 阅读 · 0 评论 -
前端面试总结一
1.页面的重构和回流重构:改变每个元素的外观时所触发的浏览器的行为,如颜色、背景等样式发生改变而进行的重新构造新外观的行为。重构不会引发页面的重新布局,不一定伴随着回流。重构时需要注意:页面的健壮性:在页面排版时需要考虑数据极多或者极少的情况。页面的扩展性:要考虑未来添加子模块或兄弟模块的状态,为将来留好css、html扩展的出入口。在将来添加模块的时候,尽可能少的去动原来的html结构...原创 2019-08-25 16:56:25 · 939 阅读 · 0 评论