随笔 - 36  文章 - 0 评论 - 2 阅读 - 40179
< 2025年7月 >
29 30 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 1 2
3 4 5 6 7 8 9

1.排序

https://zhuanlan.zhihu.com/p/52884590 视频 | 手撕九大经典排序算法,看我就够了!

https://zhuanlan.zhihu.com/p/57088609 必学十大经典排序算法,看这篇就够了(附完整代码动图优质文章)

2.正则总结

https://www.cnblogs.com/fanyegong/p/12118290.html 

3.性能优化总结

https://www.cnblogs.com/fanyegong/p/12186291.html

4.安全 xss crsf内容安全策略( CSP ) https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CSP

https://www.cnblogs.com/fanyegong/p/12220612.html

5.HTTPS HTTP2 代理

(1)https://www.cnblogs.com/fanyegong/p/12421731.html http缓存控制

(2)https://www.cnblogs.com/fanyegong/p/12212682.html  HTTPS、HTTP/2前端入门篇

(3)https://www.cnblogs.com/fanyegong/p/12212692.html 使用Wireshark查看HTTPS中TLS握手过程

(4)https://imququ.com/post/web-proxy.html HTTP 代理原理及实现(直连用http CONNECT方法)代理服务器不支持长链接怎么办?

(5)数字签名 数字摘要 证书 

https://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html “苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。”“证书中心用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)。”

(6)http-dns?https://zhuanlan.zhihu.com/p/102839806

(7)http协议 request method : CONNECT DELETE GET HEAD OPTIONS PATCH POST PUT TRACE https://developer.mozilla.org/zh-CN/docs/Web/HTTP

(8)OPTIONS 方法 1.用来检测服务器所支持的请求方法 2.CORS 中的预检请求preflight eg:

Origin:Access-Control-Request-Method:   Access-Control-Request-Headers:

(9)文件上传怎么传 multipart/form-data boundary(用来分割表单里的多个字段)

form表单里需要设置enctype="multipart/form-data"

eg: Content-Type:multipart/form-data; boundary=ZnGpDtePMx0KrHh_G0X99Yef9r8JZsRJSXC

https://blog.csdn.net/xiaojianpitt/article/details/6856536

https://www.zhihu.com/question/58118565

(10)断点续传  Range/If-Range Content-Range 

客户端发If-Range确认文件是否已经变更,没变更则返回206Partial Content 和Content-Range属性,变更则会重头传返回200 Ok

If-Range 可以使用 Etag 或者 Last-Modified 返回的值。当没有 ETage 却有 Last-modified 时,可以把 Last-modified 作为 If-Range 字段的值。

If-Range 必须与 Range 配套使用。如果请求报文中没有 Range,那么 If-Range 就会被忽略。如果服务器不支持 If-Range,那么 Range 也会被忽略。

https://blog.csdn.net/liang19890820/article/details/53215087

https://www.huaweicloud.com/articles/6c264b71ee8894eb55afa9ba79accf41.html 断点续传指下载,上传需要自己实现

https://juejin.cn/post/6844904046436843527#heading-17 大文件上传 Blob.prototype.slice分片, XMLHttpRequest 的 upload.onprogress监听进度,使用web worker计算hash

(11)状态码 

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status 101 206 429 500 501 502 301 302 403 404
302时: Status Code:302 Found; Location:https://page.om.qq.com/page/O47s-FTJETmuXwqo2pxmRI1Q0

307:为了补充302.重定向必须使用原请求的方法和包体访问 eg:http://www.baidu.com 307 Internal Redirect

(12)cdn回源时删除Content-Disposition响应头,可以直接在浏览器打开文件而不是下载

https://juejin.im/post/5d521575f265da03ee6a4bda

6.跨域方案

https://juejin.im/post/5ba1d4fe6fb9a05ce873d4ad#heading-15

7.判断JS数据类型的四种方法

https://www.cnblogs.com/onepixel/p/5126046.html

8.事件循环 宏任务微任务 Node中的setImmediate和process.nextTick 

https://juejin.im/post/5b73d7a6518825610072b42b#heading-7

https://juejin.im/post/5c3d8956e51d4511dc72c200

https://juejin.im/post/5c3e8d90f265da614274218a

9.pm2原理?

https://quincychen.cn/pm2-implementation/

10.垂直居中的多个方法

https://www.cnblogs.com/coco1s/p/4444383.html

11.深复制的多个方法

递归 JSON(只有可以转成JSON格式的对象才可以这样用,像function没办法转成JSON) 解构赋值是浅拷贝

https://segmentfault.com/a/1190000016440069

12.performance API

13.移动端适配方案

rem <html style="font-size: 100px;"></html>

px rpx em rem vh vw vm

https://www.cnblogs.com/sumlen/p/12091119.html

14.异步方法

callback async/await promise generator

15.apply call bind

func.apply(thisArg, [argsArray])

Array.prototype.indexOf.apply(arr, Array.prototype.slice.call(arguments, 1));
 
function.bind(thisArg[, arg1[, arg2[, ...]]])
Function.prototype.bind.apply(fn, slice.call(arguments, 1));
 
function.call(thisArg, arg1, arg2, ...)
Object.prototype.hasOwnProperty.call(properties, prop)

 

16.查找一个字符串中出现最多的字符

17.hash表的原理?链表?

https://blog.csdn.net/duan19920101/article/details/51579136

18.webpack原理

https://segmentfault.com/a/1190000017890529

https://zhuanlan.zhihu.com/p/58151131

https://juejin.im/entry/5b0e3eba5188251534379615 webpack原理

https://webpack.docschina.org/guides/tree-shaking/ webpack treeshaking:  sideEffects: false  使用import

https://juejin.im/post/5c73a003f265da2dc37b34c3 动态加载React组件 require.ensure()  import()

https://webpack.docschina.org/guides/code-splitting/#%E5%8A%A8%E6%80%81%E5%AF%BC%E5%85%A5-dynamic-imports- 动态加载 指南

https://webpack.docschina.org/guides/hot-module-replacement/ HMR热更新 websocket eventsource

https://webpack.docschina.org/migrate/ webpack迁移

 

19.redux原理?

https://juejin.im/post/5db7ae36e51d452a374efa53

20.模块化

https://juejin.im/post/5c17ad756fb9a049ff4e0a62

https://www.html.cn/archives/6360  兼容多种模块规范

21.TCP协议?

https://zhuanlan.zhihu.com/p/53374516 三次握手四次挥手

https://blog.csdn.net/lqglqglqg/article/details/48714611 TCP包的类型 (SYN, FIN, ACK, PSH, RST, URG)

https://blog.csdn.net/u014530704/article/details/78842000 TCP三次握手wireshark抓包分析

https://segmentfault.com/a/1190000014740303 浅析TLS 1.2协议

https://juejin.im/post/5d9c284b518825095879e7a5#heading-7 三次握手四次挥手详解

 

22.抛物线的绘制?

https://www.jianshu.com/p/8cb952d2065b 

23.kbone原理?

24.Fiber 和虚拟dom原理?

25.

26.前端面试题目:

https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/9 

27.less sass

28.兼容问题

29.echarts

var myChart = echarts.init(container)

myChart.setOption(option)
30.语法校验

31.设计模式?

https://juejin.im/post/5c984610e51d45656702a785

https://segmentfault.com/a/1190000012430769

32.serverless

32.electron

33.loadash rxjs tx angular vue

34.抽象语法树AST

应用于eslint TypeScript、babel、webpack、vue-cli 

常用的JavaScript Parser:

  • esprima
  • traceur
  • acorn
  • shift

其中webpack就是使用的acorn将源代码解析成AST进行操作。

https://zhuanlan.zhihu.com/p/32189701

https://juejin.im/post/5d50d1d9f265da03aa25607b

查看AST的平台https://astexplorer.net/

35.es6?

https://es6.ruanyifeng.com/#docs/decorator

36.客户端通信?

https://juejin.im/post/5a952cd85188257a6e405b9d iOS下JS与OC互相调用(三)--MessageHandler

window.webkit.messageHandlers.<name>.postMessage(<messageBody>)

37.docker

https://imququ.com/post/use-docker.html

38.__proto__和prototype的关系 https://www.zhihu.com/question/34183746

(1).在JS里,万物皆对象。方法(Function)是对象,方法的原型(Function.prototype)是对象。因此,它们都会具有对象共有的特点。
即:对象具有属性__proto__,可称为隐式原型,一个对象的隐式原型指向构造该对象的构造函数的原型,这也保证了实例能够访问在构造函数原型中定义的属性和方法。

(2).方法(Function)
方法这个特殊的对象,除了和其他对象一样有上述_proto_属性之外,还有自己特有的属性——原型属性(prototype),这个属性是一个指针,指向一个对象,这个对象的用途就是包含所有实例共享的属性和方法(我们把这个对象叫做原型对象)。原型对象也有一个属性,叫做constructor,这个属性包含了一个指针,指回原构造函数。

 

 

39.websocket 在chrome中查看

Connection: Upgrade   Upgrade:websocket

https://blog.csdn.net/huohuotu/article/details/77816597

40.进程和线程的区别

 


 

 

 

 

 

 

 

 

 

 

 
posted @ 2021-10-25 14:38 翻页工 阅读(39) 评论(0) 推荐(0)
摘要: 参考:https://zhuanlan.zhihu.com/p/59096242 备注:可以使用ES6取代的10个Lodash特性 https://www.w3cplus.com/javascript/lodash-features-replace-es6.html Finished Proposa 阅读全文
posted @ 2021-01-11 10:32 翻页工 阅读(252) 评论(0) 推荐(0)
摘要: 通过使用Wireshark抓包分析TLS握手的过程,可以更容易理解和验证TLS协议,本文将先介绍Wireshark解密HTTPS流量的方法,然后分别验证TLS握手过程和TLS会话恢复的过程。 一、使用Wireshark解密HTTPS流量的方法 TLS对传输数据进行了加密,直接使用Wireshark查 阅读全文
posted @ 2020-04-04 09:58 翻页工 阅读(2945) 评论(0) 推荐(0)
摘要: 随着网络安全重要性日益凸显,越来越多的站点已经全站切换到HTTPS,其中很多HTTPS站点同时将HTTP协议升级到了HTTP/2。作为一只前端,最近一直在学习和应用相关知识点,便总结梳理如下。 一、何为HTTPS、HTTP/2? HTTPS 全称Hypertext Transfer Protocol 阅读全文
posted @ 2020-04-04 09:56 翻页工 阅读(1691) 评论(0) 推荐(0)
摘要: 1.设置环境变量 mkdir ~/tls && touch ~/tls/sslkeylog.log #zsh echo "\nexport SSLKEYLOGFILE=~/tls/sslkeylog.log" >> ~/.zshrc && source ~/.zshrc #bash echo "\n 阅读全文
posted @ 2020-03-31 22:04 翻页工 阅读(1167) 评论(0) 推荐(0)
摘要: 1.在ie9下,ajax请求可能会有缓存,需要在请求上一个随机数 如:Math.random(); 2.fiddler2 打开以后可以查看所有的http请求情况,也可以使用本地脚本代替要请求的js文件,实现在线调试。 刷新网页--查看AutoResponder --选中所有--点击要请求的文件--a 阅读全文
posted @ 2019-12-27 11:02 翻页工 阅读(186) 评论(0) 推荐(0)
摘要: 如果报错没有没有被catch,将会引起整个React组件树的unmounting 解决方法:在生命周期中增加componentDidCatch https://reactjs.org/blog/2017/07/26/error-handling-in-react-16.html 阅读全文
posted @ 2018-05-18 15:23 翻页工 阅读(549) 评论(0) 推荐(0)
摘要: 1.在Wireshark官网(https://www.wireshark.org/#download)下载对应的Wireshark安装包,进行安装 2.增加系统环境变量设置(计算机 -- 右键 -- 属性--高级系统设置--高级--环境变量--系统变量--新建) 变量名:SSLKEYLOGFILE 阅读全文
posted @ 2017-06-22 14:33 翻页工 阅读(4994) 评论(0) 推荐(0)
摘要: 一.Node.js 方法1(笔者采用).如果对Node.js环境有比较高的要求,建议选择源码安装的方式进行安装,通过wget命令下载Node.js官网上的tar.gz文件包到centos服务器上,进行源码安装。 方法2.如果对版本要求不高,可以直接用centos的包管理器yum进行安装。 方法3.另 阅读全文
posted @ 2016-11-22 11:56 翻页工 阅读(411) 评论(0) 推荐(0)
摘要: 一、创建项目 二、使Node.js在后台运行 最简单的方法是: 使用forever(https://github.com/foreverjs/forever)或者pm2能做更多的事情 使用forver: 三、使Node.js在后台运行 设置静态文件缓存 设置前默认的响应: 设置后: 阅读全文
posted @ 2016-11-16 15:59 翻页工 阅读(558) 评论(0) 推荐(0)
点击右上角即可分享
微信分享提示