
面试题
为大家分享面试题,希望每一个程序员都得到想要的offer
不作声
微信公众号关注: 前端大合集。谢谢支持
展开
-
JavaScript的继承优化历程
在面向对象编程中有一个很重要的特性,就是继承,通过继承可以减小大量冗余的代码。JS也是可以面向对象编程的,在JS里也有多种继承方式。class继承class是ES6增加的关键字,他的本质...原创 2020-10-12 14:31:03 · 111 阅读 · 0 评论 -
面试题之http和https
基本概念http:超文本传输协议,是互联网上应用很广泛的一个网络协议。它负责完成客户端到服务端的一系列操作,专门用来传输HTML的超媒体文档等web内容。他是基于TCP协议的应用层协议。http协议是以明文方式发送信息的,所以安全层很低。https:是基于安全套接字的http协议,是由SSL+http协议构建的可进行加密传输、身份认证的网络协议。区别http的URL是以http://开头...原创 2020-03-10 17:04:02 · 1863 阅读 · 0 评论 -
Event Loop
Event LoopJavaScript是一门单线程语言,同一时间只能做一件事情。在js中有两类任务:同步任务异步任务在js主线程中的任务执行:1、同步和异步任务分别进入不同的“场所”执行。所有同步任务都在主线程上执行,形成一个执行栈,而异步任务进入Rvent Table并注册回调函数。2、当这个异步任务有了运行结果,Event Table会将这个回调函数移入Event Queue...原创 2020-03-10 17:02:40 · 123 阅读 · 0 评论 -
JS进阶面试题
call()call(obj,arg1,arg2,arg3)作用:可以改变this的指向。参数:第一个参数是this的指向对象,第二个参数起依次传入给函数的参数值。实现分析:context设置为可选参数,如果不传默认为window给context创建一个fn属性,并将值设置为需要调用的函数将call的多个参数剥离调用函数并将对象上的函数删除。Function.prototyp...原创 2020-03-10 16:59:40 · 149 阅读 · 1 评论 -
前端面试之立即执行函数
什么是立即执行函数声明一个函数,并马上调用这个匿名函数就叫做立即执行函数。在定义好一个函数后,直接执行。(function() {alert('立即执行函数')})() 用声明一个函数,用括号包起来,调用此函数。立即执行函数的写法有时候,我们定义函数以后,立即调用该函数,这时不能在函数的定义后面直接加圆括号,这会产生语法错误。产生语法错误的原因是,function这个关键字,既可以当做...原创 2019-12-23 12:39:45 · 342 阅读 · 2 评论 -
JS中this详解
简介在绝大数情况下,函数的调用方式决定了this值。this不能在执行期间被复制,并且在每次函数被调用时this的值也可能会不同。this的值表示当前执行的环境对象,而与声明环境无关,所以this代表的对象要等函数运行。类似定义函数时的参数列表,只有在函数调用时才传入真正的对象。this关键字虽然会根据环境变化,但它始终代表的是调用当前函数的对象。全局环境无论是否在严格模式下,在全局执行...原创 2019-12-22 16:06:54 · 229 阅读 · 0 评论 -
关于JS 的原型和原型链
原型JavaScript规定,每一个函数都有一个prototype对象属性,指向另一个对象。prototype对象属性的所有属性和方法都会被构造函数的实例继承。这意味着我们可以把那些公用的属性和方法,直接定义在prototype对象属性上。prototype就是调用构造函数所创建的实例对象的原型(proto)。js在创建对象的时候,都有一个叫做proto的属性,用于指向它的函数对象的原型对象p...原创 2019-12-21 22:05:50 · 97 阅读 · 0 评论 -
你还不知道三次握手和四次挥手过程吗
国际标准化组织(ISO)指定了一个计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。做前端肯定少不了和网络打交道,所以前端知识栈中必有网络协议。首先我们要知道,UDP和TCP工作在七层模型中的传输层。然后我们需要了解这两种协议的特点以及根据特点使用在合适的场景中。TCP传输控制协议直接列出来TCP的特点,然后再一一解释:面向连接的、可靠的传输协议全双工通信通过滑动...原创 2020-04-29 15:30:26 · 260 阅读 · 0 评论 -
React基础面试题
1、React是什么React是一个为数据提供渲染为HTML视图的开源JavaScript库。拥有虚拟DOM、组件化设计模式、声明式代码、单向数据流、使用JSX描述UI信息等特点。2、 Real DOM和Virtual DOMReact不直接操作DOM,而是实现了Virtual DOM,组件DOM结构映射到这个虚拟DOM上。React在虚拟DOM上实现了diff算法,当要重新渲染组件的时候,...原创 2020-04-13 11:57:09 · 409 阅读 · 0 评论 -
前端面试题之渲染原理
浏览器的内核是指支持浏览器运行的最核心的程序,分为JS引擎和渲染引擎两个部分。页面加载完成的过程在网页的地址栏中输入url后,浏览器经历了什么样的过程?客户端根据DNS服务器得到域名对应的ip地址;客户端向该ip地址发送http请求;服务器端收到、处理并返回http请求;客户端收到响应并返回内容。客户端渲染浏览器收到的其实就是HTML文件,只有HTML格式浏览器才能正确解析。接...原创 2020-03-29 00:03:01 · 310 阅读 · 0 评论 -
前端面试之存储问题
在浏览器中的存储方式有以下几种:cookielocalStoragesessionStorageindexDB这几种存储方式使用在不同的场景里,相互之间也有很多的区别。cookieCookie是服务器发送到用户浏览器并保存在本地的一小块数据。cookie一般由后端设置,并通过response流发送给前端并设置过期时间。在过期之前,cookie会一直存储在浏览器中,并且每次发送h...原创 2020-03-20 23:29:39 · 523 阅读 · 0 评论 -
前端面试之跨域问题
同源策略 同源策略是一种约定。同源是指"协议+域名+端口"三者相同,就算两个不同的域名指向同一个ip地址,也不属于同源。 同源策略限制以下几种行为:Cookie、LocalStorage和indexDB无法读取DOM节点无法读取和设置AJAX请求不能发送为什么要使用同源策略?同源策略主要是来防止CSRF攻击的,CSRF攻击是指利用用户的登陆状态发起恶意请求。但是同源策略并不能完...原创 2020-03-19 21:29:06 · 378 阅读 · 0 评论 -
浏览器和React中的事件机制
浏览器事件机制DOM事件模型分为捕获和冒泡。一个事件发生后,会在子元素和父元素之间传播(propagation)。事件传播分为三个阶段:捕获(Capture):事件对象从window对象传递到目标对象的过程。目标(target):目标节点在处理事件的过程。冒泡(Bubble):事件对象从目标对象传递到window对象的过程。在任一阶段调用stopPropagation都将终止本次事件...原创 2020-03-18 18:33:16 · 325 阅读 · 0 评论 -
再也不用怕面试问二叉树了
二叉树 二叉树是一种非常重要的数据结构。在算法题中经常会使用到,在面试中的占比也是非常大的。先来说说树的定义。树是由n(n>=1)个有限节点组成的一个由层级关系的集合。有以下特点...原创 2020-08-17 23:12:30 · 187 阅读 · 0 评论 -
小米的一面面试题
一份来自小米的面试题「查看淘宝的购物车,转到登陆页面的过程」在访问淘宝的购物车时,查看请求头中携带的cookie或token,如果没有携带,则没有权限,返回401(Unauthorize...转载 2020-08-01 23:48:01 · 413 阅读 · 0 评论 -
面试题中的路由
面试题中的路由部分路由最初是出现在后端中,后端根据不同的路由返回不同的页面,后来随着单页面应用(SPA)诞生,前端也出现了路由,实现了不用刷新页面就可以更新页面的效果。什么是路由简单的说...原创 2020-07-19 15:39:21 · 524 阅读 · 0 评论 -
Node多进程多线程
Node的多进程和多线程问题我们知道Node.js是以单线程的模式运行的,但它使用的是事件驱动来处理并发,这样有助于我们在多核cpu的系统上创建多个进程,从而提高性能。❝面试官:问你No...原创 2020-07-17 23:58:03 · 1233 阅读 · 1 评论 -
如何优化冗长的判断语句
优化代码中的if else语句在平时写代码时,难免会有判断语句。if...else或switch虽然简单粗暴的解决了问题,但是代码长度很大,而且不美观。今天遇到的一道面试题,如下://...原创 2020-07-16 23:22:43 · 575 阅读 · 1 评论 -
7.2笔试面试题
7.2上午笔试题1、「请描述cookie,sesstionStorage,localStorage三者之间的区别」有效时间:cookie在关闭浏览器后失效,sessionStorage在...原创 2020-07-02 22:27:07 · 160 阅读 · 0 评论 -
6.28的一次笔试题
1、分别写出以下输出结果var aAry = [1, 2, 3];var bAry = aAry;aAry[0] = 8;bAry[0] = 9;console.log(aAry...原创 2020-06-29 18:02:48 · 937 阅读 · 2 评论