1. 什么是跨域?如何解决跨域问题?
跨域是指在浏览器中,当一个Web应用程序向一个不同的域名或端口发起AJAX请求时,会被浏览器拦截。常见的解决跨域问题的方法包括 JSONP、CORS、代理服务器等
2. 什么是闭包?闭包有什么作用?请写出一个使用闭包的例子。
闭包是指在函数内部定义的函数可以访问外层函数的变量和参数,即使外层函数已经执行毕业。闭包可以用于实现函数柯里化、定时器、模块化等功能。例如:
function add(x)
{ return function(y) {
return x + y;
};
} var increment = add(1)
; console.log(increment(3));
3.什么是事件冒泡?如何阻止事件冒泡?
事件冒泡是指在HTML元素上触发某个事件时,该事件会向父元素一件一件地传递,直到传递到根元素或停止传播。可以使用时间对象的stopPropagation()方法来阻止事件冒泡
4.什么是 HTTP 请求方法?有哪些常见的请求方法?
HTTP请求方法是指浏览器向服务器发送请求时所使用的HTTP动词,常见的请求方法包括GET POST DELETE 等
5.简述一下 CSS 中的盒模型,以及 W3C 标准盒模型和 IE 盒模型的区别。
CSS中的盒模型是指每个HTML元素被看做是一个矩形的盒子,包括content、padding、boder、margin四个部分。
W3C标准盒模型和IE盒模型的区别在于,W3C标准盒模型的width和height只包括content部分
IE盒模型的width和height包括content、padding、border三个部分。可以通过设置元素的CSS属性box-sizing来修改盒模型
6.什么是 Vue.js?Vue.js 有哪些特点?Vue.js 的生命周期钩子函数分别有哪些?
Vue.js是一款轻量级的JavaScript框架,用于构建HTML页面的用户界面。
Vue.js的特别包括双向数据绑定、组件化、虚拟DOM等。
Vue.js的生命周期函数钩子函数包括beforeCreare、created.beforeMount、mounted、beforeUpdate、updated、beforeDestory和destroyed八个函数,分别对应不同的阶段和操作
7.如何实现前端路由?有哪些前端路由实现方式?
前端路由器是指在前端页面中实现路由功能,即在不刷新页面的情况下更新页面内容和地址栏URL。
常见的前端路由实现方式有两种:基于hash的路由和基于history APL的路由
8. 什么是 CSS 预处理器?请列举一些常见的 CSS 预处理器。
CSS预处理器是指将类似于Sass、Less、Stylus等css预处理语言编写的代码转换成浏览器可识别的CSS代码的工具。
CSS预处理器可以增加代码的可读性,可维护性,和重要性,同时也提供了一些方便的功能,如变量、嵌套、混合等
9.简述一下 CSS flex 布局,以及 flex 容器和 flex 项目的属性有哪些?
CSS flex布局是一种弹性盒子布局模型,可以使HTML元素在容器内自由地伸缩和排列。
Flex容器可以设置flex-direction、justify-content、align-content等属性,Flex项目可以设置flex-grow、flex-shrink、flex-basis等属性
10.简单阐述一些三次握手和四次挥手
TCP协议是一种可靠的传输协议,其连接的建立和断开都需要经过特定的握手和挥手过程。
三次握手是TCP连接建立的过程,而四次挥手则是连接断开的过程,两者的具体步骤如下;
三次握手:
1.第一次握手:客户端向服务器发送SYN报文,请求建立连接
2.第二次握手:服务器收到了SYN报文后,向客户端发送SYN-ACK报文,却请求并回应自己的序列号
3.第三次握手:客户端收到SYN-ACK报文后,向服务器发送ACK报文,确认响应
通过这样三次握手的过程,客户端和服务器建立了可靠的连接,可以进行数据的传输。
四次挥手:
1.第一次挥手:客户端发送FIN报文,请求关闭连接
2.第二次挥手:服务器接收到FIN报文后,向客户端发送ACK报文,表示确认收到请求
3.第三次挥手:服务器发送FIN报文,请求关闭连接
4.第四次挥手:客户端接收到了FIN报文后,向服务器发送ACK报文,表示确认收到请求
在四次挥手的过程中,先由客户端向服务器发出关闭连接的请求,服务器收到请求后发送确信息,并在完成时再次向客户端发出请求,客户端再次却后连接才真正关闭,这样可以保证在关闭连接过程中的数据不会丢失2,确保数据传输的可靠性
需要注意的是。在进行TCP连接时,三次握手是必需的,但四次挥手并不一定总是需要的。如果连接被主动关闭的一方已经没有需要发送的数据,那么在第三次握手是可以同时将FIN报文和ACK报文发送给另一方,直接进入TIME_WAIT状态,等待约定的时间后直接关闭连接