2022.05.05

闭包

在 js 高程里面的定义是: 指有权访问另一个函数作用域中的变量的函数。然后我自己的理解闭包其实只是一个绑定了执行环境的函数,能够在函数声明过程中,将环境信息与所属函数绑定在一起的数据结构。它是基于函数声明的文本位置的,因此也被称为围绕函数定义的静态作用域或词法作用域。

解决问题的能力, 更多的是接受新事物,能够学习 归纳 总结

hook 的原理

同源跨域的通信方式

跨域的 n 中实现方式

new string 和 直接 string 一样吗

实现原理

讲一讲 vue3 中的 proxy

vue3 中的 proxy

讲一讲 fiber

react 源码分析之 Fiber

箭头函数和普通函数的区别

箭头函数和普通函数的区别

浏览器为什么要发预检请求

什么是简单请求

简单请求:

**方法:HEAD GET POST **HTTP 的头信息不超过以下字段 1.Accept、 1.Accept-Language、 1.Content-Language、 1.Last-Event-ID、 1.Content-Type:只限于三个值 application/x-www-form-urlencoded、multipart/form-data、text/plain

这是为了兼容表单(form),因为历史上表单一直可以发出跨域请求。AJAX 的跨域设计就是,只要表单可以发,AJAX 就可以直接发

非简单请求: 凡事不能满足上面两个条件,就属于非简单请求。常见的非简单请求是那种对服务器有特殊要求的请求,比如请求方法是 PUT 或 DELETE,或者 Content-Type 字段的类型是 application/json。

非简单请求的 CORS 请求,会在正式通信之前,增加一次 HTTP 查询请求,称为"预检"请求(preflight)。

为什么要对非简单跨域请求做预检?

"预检"请求用的请求方法是 OPTIONS,表示这个请求是用来询问的。头信息里面,关键字段是 Origin,表示请求来自哪个源。

除了 Origin 字段,"预检"请求的头信息包括两个特殊字段。

(1)Access-Control-Request-Method 该字段是必须的,用来列出浏览器的 CORS 请求会用到哪些 HTTP 方法。 (2)Access-Control-Request-Headers

该字段是一个逗号分隔的字符串,指定浏览器 CORS 请求会额外发送的头信息字段,上例是 X-Custom-Header。

构造函数的 new 都做了什么

简单来说,分为四步: ① JS 内部首先会先生成一个对象; ② 再把函数中的 this 指向该对象; ③ 然后执行构造函数中的语句; ④ 最终返回该对象实例。

v8 垃圾回收

chrome/v8 引擎垃圾回收机制

最后更新于