霸面的是前端实习生岗位,当时听同窗说前端缺人,还特地设了一个霸面区,就去溜了个弯儿,毕竟不试试,怎么知道本身有多菜呢o( ̄︶ ̄)o
一面技术面,面试官关注的点一直在数据结构、算法、计算机网络这些点,关于框架也有问,但较少,并且直接问原理。下面是把面试官问的问题作个总结,以便之后查漏补缺css
数据结构中的排序一直是一个绕不过去的点,面试官的第一道题就是让用js写快排,然鹅,我并无复习快排ε(┬┬﹏┬┬)3,写不出来以后面试官就让讲一下快排的原理。
快排原理:html
王道上对快排的解释是:在待排序表L[1·····n]中任取一个元素pivot做为基准,经过一趟排序姜待排序表划分为独立的两部分L[1···k]和L[k+1···n],使得L[1···k]中全部元素小于pivot,L[k+1···n]中全部元素大于pivot,则pivot放在了其最终位置L(k)上,这个过程称做一趟快速排序。然后分别地柜的对两个子表重复上述过程,直至每部份内只有一个元素或空为止,即全部元素放在了其最终位置上。
算法实现:前端
var arr=[1,54,27,93,100,45,98] function qsort(a,l,r){ var x=a[l],i=l,j=r if(i>=j) return x while(i<j){ while(i<j&&x<=a[j];j--); a[i]=a[j] while(i<j&&a[i]<=x;i++); a[j]=a[i] } a[i]=x qsort(a,l,i-1) qsort(a,i+1,r) } qsort(arr,0,6) alert(arr)
这个代码运行不成功,待修改;
几种内排序的算法实现,时间复杂度都须要掌握vue
这是面试的最后一道题,算是拿个算法题来压轴。从25匹马中选出5匹最快的马,只有五个赛道,求最少的次数(没有秒表计时)
这个题当时没想出来,后来面试结束,在网上找到一个如出一辙的题,步骤这里就不写了,详情请移步点我点我ios
网络里的知识考的比较多一些,有http和https,ip协议,DNS,url面试
http和https有什么区别?
回答说https更安全以后,面试官接着问,问什么更安全
HTTP协议传输的数据都是未加密的,也就是明文的,所以使用HTTP协议传输隐私信息很是不安全,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。ajax
HTTPS和HTTP的区别主要以下:算法
一、https协议须要到ca申请证书,通常免费证书较少,于是须要必定费用。
二、http是超文本传输协议,信息是明文传输,https则是具备安全性的ssl加密传输协议。
三、http和https使用的是彻底不一样的链接方式,用的端口也不同,前者是80,后者是443。
四、http的链接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。数据库
客户端在使用HTTPS方式与Web服务器通讯时有如下几个步骤,如图所示。
(1)客户使用https的URL访问Web服务器,要求与Web服务器创建SSL链接。
(2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
(3)客户端的浏览器与Web服务器开始协商SSL链接的安全等级,也就是信息加密的等级。
(4)客户端的浏览器根据双方赞成的安全等级,创建会话密钥,而后利用网站的公钥将会话密钥加密,并传送给网站。
(5)Web服务器利用本身的私钥解密出会话密钥。
(6)Web服务器利用会话密钥加密与客户端之间的通讯。axios
若是须要将网站从http切换到https到底该如何实现呢?
这里须要将页面中全部的连接,例如js,css,图片等等连接都由http改成https。例如:http://www.baidu.com改成https://www.baidu.com
BTW,这里虽然将http切换为了https,仍是建议保留http。因此咱们在切换的时候能够作http和https的兼容,具体实现方式是,去掉页面连接中的http头部,这样能够自动匹配http头和https头。例如:将http://www.baidu.com改成//www...。而后当用户从http的入口进入访问页面时,页面就是http,若是用户是从https的入口进入访问页面,页面即便https的。
ip协议的做用是什么,dns是什么,属于七层中的哪一层
巴拉巴拉说了一点,可能说的不太对,面试官就没在接着问,据别的同窗说,面试官接着问她:域名解析存储在哪里,服务器,在服务器的哪里???鬼知道
IP 地址是咱们进行TCP/IP通信的基础,IP地址是一个32位二进制数的地址, 由4个8位字段组成,每一个字段之间用点号隔开,用于标识TCP/IP宿主机。每一个IP地址都包含两部分:网络ID和主机ID。网络ID标识在同一个物理网络上的全部宿主机,主机ID 标识该物理网络上的每个宿主机,因而整个Internet上的每一个计算机都依靠各自惟一的IP地址来标识。
IP地址的格式为: IP地址 = 网络地址 + 主机地址 或者 IP地址=主机地址 + 子网地址 + 主机地址。一个简单的IP地址其实包含了网络地址和主机地址两部分重要的信息。
IP地址必须和一个网络掩码(Net Mask)对应使用, 缺一不可。网络掩码的主要做用是告诉计算机如何从IP地址中析取网络标识和主机标识。其实现是经过设置掩码来将本来属于主机ID的位(bit)借用给网络ID, 从而起到减小主机数量的做用。当经过设置掩码从主机ID来借用位(bit)时, 至少要留下2个位(bit)来作主机ID。由于只留一个位的状况下,全0和全1都没有意义.
在TCP/IP协议栈的实现中设定了许多的规则,其中有一条就是, 两台联网的主机想直接通信的话,必须有相同的网络标识和不一样的主机标识。具备不一样的网络标识的两台主机要想通信的话必须经过一台中间设备 - 路由器的转发才能实现。
对于大多数拨号上网的用户,因为其上网时间和空间的离散性,为每一个用户分配一个固定的IP地址(静态I P)是很是不可取的,这将形成IP地址资源的极大浪费。所以这些用户一般会在每次拨通ISP的主机后,自动得到一个动态的IP地址,该地址固然不是任意的,而是该ISP申请的网络ID和主机ID的合法区间中的某个地址。拨号用户任意两次链接时的IP地址极可能不一样,可是在每次链接时间内IP地址不变。
DNS( Domain Name System)是“域名系统”的英文缩写,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工做。
至于同同窗说的解析存储在哪里,我猜是问如何查询的过程:
一、在浏览器中输入www . qq .com 域名,操做系统会先检查本身本地的hosts文件是否有这个网址映射关系,若是有,就先调用这个IP地址映射,完成域名解析。
二、若是hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,若是有,直接返回,完成域名解析。
三、若是hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此咱们叫它本地DNS服务器,此服务器收到查询时,若是要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具备权威性。
四、若是要查询的域名,不禁本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具备权威性。
五、若是本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,若是未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来受权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,若是本身没法解析,它就会找一个管理.com域的下一级DNS服务器地址(http://qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找http://qq.com域服务器,重复上面的动做,进行查询,直至找到www . qq .com主机。
六、若是用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器若是不能解析,或找根DNS或把转请求转至上上级,以此循环。无论是本地DNS服务器用是是转发,仍是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
ip属于网络层,dns属于应用层,附图一张:
参见ipipipipip dns dns dns dns dns
写一个带?和#的url
港真,我不知道?和#是什么意思。如今想一想昨天跟面试官胡邹了一下就以为好尬
#表明网页中的一个位置,好比,http://www.XXX.com/index.html...。
?是带的参数。好比 http://www.cnallshop.com/sch?...,参数是?后面的id=1,网站的程序会根据此参数查询数据库。
参见#表示页面定位
关于框架,只问了一个问题,果真大厂都重基础,首先
读过vue源码吗?
gg,没有,
说一下vue实现双向绑定的原理是什么
原理原理,一脸懵逼。。。
连接描述这个文章写的真好,挖坑,今天没空了,明天总结一下
还问了一个问题,和后台交互用的什么,axios呀,那axios的原理是什么?
阿西吧,除了axios还有什么和后台交互的方式?
一、 link标签的href属性
二、 script标签的src属性
三、 img标签的src属性
四、 ajax发送请求
五、 表单提交发送请求
六、 a标签的href发送请求
七、 iframe的src属性发送请求
先后端实现数据交互的方法点我