File tree 3 files changed +62
-0
lines changed
3 files changed +62
-0
lines changed Original file line number Diff line number Diff line change
1
+ ### Map
2
+ > Map产生原因?
3
+ >
4
+ > JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键。这给它的使用带来了很大的限制。为了解决这个问题,ES6 提供了 Map 数据结构,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现
5
+
6
+ ### WeakMap
7
+ > WeakMap结构和Map相似,也是用于生成键值对的集合
8
+ > WeakMap只接受对象作为键名(null除外),不接受其他类型的值作为键名。
9
+ > WeakMap的键名所引用的对象都是弱引用,即垃圾回收机制不将该引用考虑在内。因此,只要所引用的对象的其他引用都被清除,垃圾回收机制就会释放该对象所占用的内存。也就是说,一旦不再需要,WeakMap 里面的键名对象和所对应的键值对会自动消失,不用手动删除引用
10
+ > 总之,WeakMap的专用场合就是,它的键所对应的对象,可能会在将来消失。WeakMap结构有助于防止内存泄漏。
11
+
12
+ WeakMap 结构与 Map 结构类似,也是用于生成键值对的集合。
13
+
14
+ - 只接受对象作为键名(null 除外),不接受其他类型的值作为键名
15
+ - 键名是弱引用,键值可以是任意的,键名所指向的对象可以被垃圾回收,此时键名是无效的
16
+ - 不能遍历,方法有 get、set、has、delete
17
+
18
+ ![ pic] ( ../image/vue%E5%8F%8C%E5%90%91%E6%95%B0%E6%8D%AE%E7%BB%91%E5%AE%9A.png )
Original file line number Diff line number Diff line change
1
+ // new一个WeakMap
2
+ const wp = new WeakMap ( )
3
+ const obj1 = { foo :1 }
4
+ wp . set ( obj1 , 'this is value' )
5
+ console . log ( wp . get ( obj1 ) ) ;
6
+
7
+ // WeakMap 也可以接受一个数组,
8
+ // 作为构造函数的参数
9
+ const k1 = [ 1 , 2 , 3 ] ;
10
+ const k2 = [ 4 , 5 , 6 ] ;
11
+ const wm2 = new WeakMap ( [ [ k1 , 'foo' ] , [ k2 , 'bar' ] ] ) ;
12
+ console . log ( wm2 . get ( k2 ) ) ; // "bar"
13
+
14
+ // WeakMap 必须接受对象作为key
15
+ // wp.set(1,2) // TypeError: Invalid value used as weak map key
16
+
17
+ // WeakMap 的键名所指向的对象,不计入垃圾回收机制, 这是为了解决内存泄露问题
18
+
Original file line number Diff line number Diff line change
1
+ ### 从输入URL到页面展现数据,发生了什么?
2
+ #### 技术蛋老师版
3
+ 1 . 我们在游览器输入的URL还不能找到服务器的地址(服务器IP地址),URL是为了方便我们更快记住服务器地址,是服务器IP地址的别名
4
+ 2 . 我们需要进行DNS解析:把URL地址 解析为 服务器IP地址 这一个过程就是DNS解析,
5
+ 3 . 虽然我们知道具体IP地址,但是在正式发送数据之前,还是得建立TCP连接,在发送数据之前建立数据通道,于是就有了三次握手
6
+ 4 . 建立连接后,游览器是会发送HTTP请求报文给服务器,发送请求报文
7
+ 5 . 服务器收到HTTP请求报文,服务器处理请求报文,并作出响应,生成响应报文
8
+ 6 . 游览器在接收服务器的响应以后,就会进行页面渲染,即:解析接收到的HTML,CSS,JavaScript等文件,生成页面内容
9
+
10
+
11
+ #### 知识点
12
+ 1 . DNS:其实就是一个数据库,这个数据库记录着很多IP地址和对应的URL,这样大家就能通过DNS查找到对应的IP地址,有了IP地址,我们就可以在互联网中找到指定的服务器
13
+ 2 . 请求报文的格式:请求行, 请求头部, 空行, 请求数据,
14
+ 1 . 请求行:请求方法,请求地址,HTTP协议
15
+ 2 . 请求头部:关于游览器的信息,键值对组成
16
+ 3 . 空行:表示没有请求头部了
17
+ 4 . 请求数据:真正的发送给服务器的请求数据
18
+ 3 . 响应报文:
19
+ 1 . 状态行:三位数字,例如:404 Not Found
20
+ 2 . 响应头部:键值对组成,一行一对,
21
+ 3 . 空行:表示下面没有响应头部
22
+ 4 . 响应数据:响应游览器的数据
23
+
24
+ #### 参考
25
+ 技术蛋视频:https://www.bilibili.com/video/BV1s44y117vK/?spm_id_from=333.788&vd_source=ce628a5bd43df277d141676215ef5ff3
26
+ 掘金文章:https://juejin.cn/post/6905931622374342670
You can’t perform that action at this time.
0 commit comments