2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 春招遇到的前端面试问答汇总(字节 腾讯 阿里 美团)——自己总结 建议保存

春招遇到的前端面试问答汇总(字节 腾讯 阿里 美团)——自己总结 建议保存

时间:2022-08-23 03:10:05

相关推荐

春招遇到的前端面试问答汇总(字节 腾讯 阿里 美团)——自己总结 建议保存

***http 和 https 区别

1.https协议需要到ca(电子认证服务,是指为电子签名相关各方提供真实性、可靠性验证的活动。)申请证书,一般免费证书较少,因而需要一定费用。

2.http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。(非对称加密)

3.http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4.http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

***非对称加密和对称加密的区别

1、加密和解密过程不同

对称加密过程和解密过程使用的同一个密钥,加密过程相当于用原文+密钥可以传输出密文,同时解密过程用密文-密钥可以推导出原文。但非对称加密采用了两个密钥,一般使用公钥进行加密,使用私钥进行解密。

2、加密解密速度不同

对称加密解密的速度比较快,适合数据比较长时的使用。非对称加密和解密花费的时间长、速度相对较慢,只适合对少量数据的使用。

3、传输的安全性不同

对称加密的过程中无法确保密钥被安全传递,密文在传输过程中是可能被第三方截获的,如果密码本也被第三方截获,则传输的密码信息将被第三方破获,安全性相对较低。

非对称加密算法中私钥是基于不同的算法生成不同的随机数,私钥通过一定的加密算法推导出公钥,但私钥到公钥的推导过程是单向的,也就是说公钥无法反推导出私钥。所以安全性较高。

***实现一定时间内事件只触发一次

$(function(){

vartimeoutflag = null;

$(#inputAddress1).click(function() {

if(timeoutflag != null){

clearTimeout(timeoutflag);

}

timeoutflag=setTimeout(function(){

dosomething();//此处是一个会请求远程的ajax 异步操作;

},500);

});

functiondosomething(){

alert(1);

}

});

***输入 url 到网页显示的具体过程

1、输入网址2、DNS解析3、建立tcp连接4、客户端发送HTPP请求5、服务器处理请求 6、服务器响应请求7、浏览器展示HTML8、浏览器发送请求获取其他在HTML中的资源。

***js 怎么解析的

1:全局检索。查看是否有语法错误--->语言分析

2:创建全局对象GO(global)--->预编译

3:执行每行代码 对变量进行赋值 等操作 --->解析执行 ---> 变量一旦创建;不能删除,除非关闭程序。(window对象在打开页面时候创建;先创建window在语言分析)

***3 次握手

第一次

第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次

第二次握手:服务器收到syn包,必须确认客户端的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。

第三次

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

完成三次握手,客户端与服务器开始传送数据

***data-name、data-age 等 HTML5 自定义属性

data-*实际上上就是data-前缀加上自定义的属性名,使用这样的结构可以进行数据存放。使用data-*可以解决自定义属性混乱无管理的现状。

data-*有两种设置方式,可以直接在HTML元素标签上书写

<divdata-age="24">

Click Here

</div>

data-age就是一种自定义属性,当然我们也可以通过JavaScript来对其进行操作,HTML5中元素都会有一个dataset的属性,这是一个DOMStringMap类型的键值对集合

var test = document.getElementById( est);

test.dataset.my = Byron;

***script 是什么(脚本)

短小的、用来让计算机自动化完成一系列工作的程序

在网站前端编程的语境下,脚本通常是指在浏览器里运行的小程序,就像剧本一样,它可以用来控制网页上的各种图文该怎么表演给你看

***defer 和 async 的区别

没有 defer 或 async,浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染该 script 标签之下的文档元素之前,也就是说不等待后续载入的文档元素,读到就加载并执行。

1.有 async,加载和渲染后续文档元素的过程将和 script.js 的加载与执行并行进行(异步)。

2.有 defer,加载后续文档元素的过程将和 script.js 的加载并行进行(异步),但是 script.js 的执行要在所有元素解析完成之后,DOMContentLoaded 事件触发之前完成。

***DOM 事件流的顺序

DOM事件流包括三个阶段。

事件捕获阶段

处于目标阶段

事件冒泡阶段

事件冒泡即事件开始时,由最具体的元素接收(也就是事件发生所在的节点),然后逐级传播到较为不具体的节点。

事件捕获的概念,与事件冒泡正好相反。它认为当某个事件发生时,父元素应该更早接收到事件,具体元素则最后接收到事件。

<!DOCTYPE html>

<htmllang="en">

<head>

<metacharset="UTF-8">

<title>Event Bubbling</title>

</head>

<body>

<buttonid="clickMe">Click Me</button>

</body>

</html>

然后,我们给button和它的父元素,加入点击事件

varbutton = document.getElementById(clickMe);

button.onclick = function() {

console.log(1. You click Button);

};

document.body.onclick = function() {

console.log(2. You click body);

};

document.onclick = function() {

console.log(3. You click document);

};

window.onclick = function() {

console.log

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。