Sunshine168 / resume

My resume
3 stars 1 forks source link

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

Open Sunshine168 opened 6 years ago

Sunshine168 commented 6 years ago

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

电面

第一轮手写功能函数

解析一个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响应吗

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