前端面试高薪问题

227 阅读5分钟

1. 什么是跨域?如何解决跨域问题?

    跨域是指在浏览器中,当一个Web应用程序向一个不同的域名或端口发起AJAX请求时,会被浏览器拦截。常见的解决跨域问题的方法包括 JSONP、CORS、代理服务器等

2. 什么是闭包?闭包有什么作用?请写出一个使用闭包的例子。

   闭包是指在函数内部定义的函数可以访问外层函数的变量和参数,即使外层函数已经执行毕业。闭包可以用于实现函数柯里化、定时器、模块化等功能。例如:
function add(x) 
{ return function(y) {
  return x + y; 
 };
} var increment = add(1)
; console.log(increment(3)); // 4+

3.什么是事件冒泡?如何阻止事件冒泡?

事件冒泡是指在HTML元素上触发某个事件时,该事件会向父元素一件一件地传递,直到传递到根元素或停止传播。可以使用时间对象的stopPropagation()方法来阻止事件冒泡

4.什么是 HTTP 请求方法?有哪些常见的请求方法?

 HTTP请求方法是指浏览器向服务器发送请求时所使用的HTTP动词,常见的请求方法包括GET POST DELETE

5.简述一下 CSS 中的盒模型,以及 W3C 标准盒模型和 IE 盒模型的区别。

 CSS中的盒模型是指每个HTML元素被看做是一个矩形的盒子,包括contentpadding、boder、margin四个部分。
 W3C标准盒模型和IE盒模型的区别在于,W3C标准盒模型的widthheight只包括content部分
 IE盒模型的widthheight包括contentpaddingborder三个部分。可以通过设置元素的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-directionjustify-contentalign-content等属性,Flex项目可以设置flex-growflex-shrinkflex-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状态,等待约定的时间后直接关闭连接