前端React技术栈五轮面试(3轮技术)

记录一下吧,毕竟面试经验比较少,也是成功斩获了offer。

电面

  • 介绍自己
  • react 核心思想,react的优点和缺点
  • 了解过其他前端框架吗,优势劣势,和react区别
  • 使用react-native开发有什么好处
  • redux和mobx这两个数据管理工具有什么不同,各有什么优劣?
  • 在使用react-native开发的时候踩过什么坑

第一轮手写功能函数

解析一个url特殊封装的query

样例

输入

https://www.google.com?q=test&a[a]=a&a[b]=c

输出

{
    "q": "test",
    "a":{
        "a":"a",
        "b":"c"
    }
}

将数字转换为固定格式的字符串

输入

12345678.8091

输出

12,345,678.809,1

第二轮

(。。第二轮的面试官竟然是写java的。。。)

写一个简单的ListView组件

http的包是什么样子的

http请求

https://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html
http请求由三部分组成,分别是请求行,信息报头,请求正文。

例子

GET /dumprequest HTTP/1.1
Host: rve.org.uk
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: https://www.google.com/
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8

请求行

GET /dumprequest HTTP/1.1

请求方法 请求URL HTTP协议版本

后面接着的就是信息报头即header

最后就是请求的body

http响应

https://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html
HTTP响应也是由三个部分组成,分别是:状态行、信息报头、响应正文

HTTP/1.1 200 OK
Date: Fri, 27 Apr 2018 05:20:58 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 0
Connection: keep-alive
Set-Cookie: aliyungf_tc=AQAAABqIYG7paggAVsE2t8k81yC/SfQ1; Path=/; HttpOnly
Access-Control-Allow-Origin: *
X-Req-ID: 1A94B0F05AE2B33A
X-Req-SSL: proto=TLSv1.2,sni=api.zhihu.com,cipher=ECDHE-RSA-AES256-GCM-SHA384
Server: ZWS
Vary: Accept-Encoding

状态行 由协议 状态码 代码的文本描述

响应报头

最后就是响应的body

http请求的几种类型

这里只列我有了解的
Get、Post、Put、Delete、Options、Head

options
1、获取服务器支持的请求类型
2、检查服务器性能

http响应吗

  • 1xx
  • 2xx
  • 3xx
  • 4xx
  • 5xx

100 询问是否接受该信息 支持再传输body

101 切换协议,例如websocket,第一个请求询问是否支持,支持则切换

200 成功
204 请求成功,返回的是空数据一般用于更新数据
206 分块传输

301 永久重定向
302 暂时重定向

以上两者对于用户都是重定向,但是对于引擎和网站拥有者的意义不一样。

304 访问的是本地缓存

404 找不到

403 禁止访问

RN上面动画不流畅的时候要怎么解决?

RN上面在ios上webview性能太低要怎么解决?

https://github.com/CRAlpha/react-native-wkwebview 应该是要用这个替换原来react-native的 UIWebView

socket.io 除了websocket通讯还有什么其他通讯手段?

在不支持websocket的时候可以使用轮序

websocket 请求第一步是什么?

发送请求询问是否支持websocket 支持的话切换到这个协议

用html + css 实现一个扇形 讲讲思路?

我想到的思路是分块遮盖一个圆,不过实际上回来看了一下

回来搜了一下 见:https://blog.csdn.net/ganyingxie123456/article/details/77934790

前端性能优化

实现一个Promise

你可能感兴趣的:(前端React技术栈五轮面试(3轮技术))