随笔分类 - 前端面试相关
摘要:1.以下递归函数存在栈溢出的风险,请问如何优化?function factorial(n){return n*factorial(n-1)} 解答: 2.请实现一个计算最大公约数的函数:function greatestCommonDivisor(a,b){//在这里编写代码}greatestCom
阅读全文
摘要:1.栈的压入和弹出 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列5,4,3,2,1或3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。
阅读全文
摘要:1.数组方法 1)join()把数组上午所有元素放入一个字符串。元素通过指定的分隔符进行分隔。 该方法只接收一个参数,用作分隔符的字符串,然后返回包含所有数组项的字符串,如果不给join()方法传入任何值,则使用逗号作为分隔符。 注意:如果join()方法的参数是undefined,标准浏览器以逗号
阅读全文
摘要:1.JavaScript实现二分法查找? 二分法查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法。查找过程可以分为以下步骤:(1)首先,从有序数组的中间的元素开始搜索, 如果该元素正好是目标元素(即要查找的元素),则搜索过程结束,否则进行下一步。(2)如果目标元素大于或者小于中间元素,
阅读全文
摘要:1.apply,call,bind有什么区别? 三者都可以把一个函数应用到其他对象上,apply,call是直接执行函数调用,bind是绑定,执行需要再次调用。 apply和call的区别是apply接受数组作为参数,而call是接受逗号分隔的无限多个参数列表。 代码如下: 2.defineProp
阅读全文
摘要:1.描述一下渐进增强和优雅降级 优雅降级(graceful degradation):一开始就构建站点的完整功能,然后针对浏览器测试和修复。 渐进增强(progressive enhancement):一开始只构建站点的最少特性,然后不断针对各浏览器追加功能。 2.为什么利用多个域名来请求网络资源会
阅读全文
摘要:1.ES6中的let,const,var的区别是什么? var:声明全局常量; let:声明块级常量,即局部常量,定以后可以修改; const:用于声明常量,定义后不能再修改值或者引用值的常量,也具有块级作用域; 2.对数组进行去重,es5或者es6方法 3.页面加载过程中可能触发哪些事件?它们的顺
阅读全文
摘要:1.XML和JSON的区别? 1)数据体积方面 JSON相对于XML来讲,数据的体积小,传递的速度更快些 2)数据描述方面 JSON和JavaScript交互更加方便,更容易解析处理,更容易交互 3)数据描述方面 JSON对数据的描述性比XML差 4)传输速度方面 JSON的速度要远远快于XML 2
阅读全文
摘要:1.说说前端中的事件流? 事件流描述的是从页面接收事件的顺序,DOM2级事件流包括下面几个阶段。 事件捕获阶段 处理事件阶段 事件冒泡阶段 (addEventListener:addEventListener是DOM2级事件新增的指定事件处理程序的操作,这个方法接收3个参数:要处理的事件名,作为事件
阅读全文
摘要:1.CSS的盒子模型 包含元素内容content、内边距padding、边框border、外边距margin box-sizing:border-box;content-box;inherit; 1)content-box:总宽度=margin+border+padding+width,即为标准模型
阅读全文
摘要:头条2020届实习生笔试题 一卷 编程题: 输入某年某月某日,判断这一天是这一年的第几天? 寻找多数元素 设计一个方法,在一个数组中寻找占大多数的元素(如果存在的话),如果这样的元素不存在,就输出“没有元素占大多数”。 占大多数的元素的定义为:如果一个数组A的长度为n,某一个元素在数组中的数量大于n
阅读全文
摘要:1. A、B、C分别输出什么? 运行结果如下: 所以A为0,B为5,C为[a:1] 2. 解法: 这道题如果没有限定给出给定的代码,还可以根据ES6块级作用域的知识把for循环中的var改成let,或者用Promise 3.有如下代码: 运行结果是: 报错 (扩展:如果题目中typeof f 'fu
阅读全文
摘要:此次面试说来也有点匆忙,本没想过自己会那么快就想去面试大公司,并且把自己第一次面大公司的各种不足展现得一览无余。当时11月20号左右身边一位朋友给了一位人超nice的师兄的内推,并且鼓励我去投简历。最终战胜了自己的胆怯,投了一份简历给内推的师兄。一两天后hr就打电话安排面试了。 没想到面试是要连续着
阅读全文
摘要:由于HTTP协议是无状态的,服务器只会响应来自客户端的请求,但是它与客户端之间不具备持续连接。 当用户在浏览器上进行操作时,可以请求服务器上的api;但是反过来不可以:服务端发生了一件事,无法将这个事件的信息实时主动的通知客户端。只有在客户端查询服务器当前状态时,所发生事件的信息才会从服务器传递到客
阅读全文
摘要:首先了解下关系型数据库和非关系型数据库 关系型数据库 SQL关系型数据库采用了关系模式来组织数据,即关系模式为二维表格模型。 主要的数据库:SQL Server,Oracle,Mysql,PostgreSQL。 优点:容易理解,使用方便,易于维护 缺陷:对于高并发量的读写效率,高扩展性和可用性(难以
阅读全文
摘要:什么是Node.js 官方解释:Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js使用了一个事件驱动、非阻塞式I/O的模型( Node.js的特性),使其轻量级又高效。 Node.js 的包管理器 npm 是全球最大的开源库生态系统。 上图所示:
阅读全文
摘要:前端路由原理本质就是监听 URL 的变化,然后匹配路由规则,显示相应的页面,并且无须刷新。目前单页面使用的路由就只有两种实现方式 hash history www.test.com/##/ 就是 Hash URL,当 ## 后面的哈希值发生变化时,不会向服务器请求数据,可以通过 hashchange
阅读全文
摘要:MVVM由以下三个内容组成 View:视图模板 Model:数据模型 ViewModel:作为桥梁负责沟通View和Model,自动渲染模板 在JQuery时期,如果需要刷新UI时,需要先取到对应的DOM再更新UI,这样数据和业务的逻辑就和页面有强耦合。 在MVVM中,UI是挺数据驱动的,数据一旦改
阅读全文
摘要:Virtual DOM算法 把一个div元素的属性打印出来,如下: 可以看到仅仅是第一层,真正DOM的元素是非常庞大的,这也是DOM加载慢的原因。 相对于DOM对象,原生的JavaScript对象处理起来更快,而且更简单。DOM树上的结构、属性信息都可以用JavaScript对象表示出来: 上面对应
阅读全文
摘要:1.HTTP的概念 超文本传输协议(HTTP)是用于传输诸如HTML的超媒体文档的应用层协议。它被设计用于Web浏览器和Web服务器之间的通信,但它也可以用于其他目的。 HTTP遵循经典的客户端-服务端模型,客户端打开一个连接以发出请求,然后等待它收到服务器端响应。 HTTP是无状态协议,意味着服务
阅读全文