我翻了很多文档 找不到我想要的答案 我也算是综合下他们的观点 ,发表自己的看法
都说js是弱类型 语言 那么 究竟 “弱” 在哪里了
举个例子说明哈 如果仅凭 语言来说的话 很难把这个实践性强的学科掌握好的
- 弱类型 只可意会不可言传 哈
var a=20;
typeof a; // number
a="hello world";
typeof a; string
好了 例子举完了
js 不像 c java 那种强类型语言 变量从一开始定义的时候 就确定了他的 类型
就像男孩和女孩一样 从一开始就确定了 性别 (第三型别的除外)
js 我定义了一个a 一开始 是 数值类型的 赋值成 字符串后 就变成了 字符类型 真是一个墙头草 这种行为现实中 可不要模仿哈
- 弱引用
弱引用这个 概念之前见到过一道面试题
map中的键 会不会被垃圾回收机制 给回收了
这里要考虑到 weakMap 了
Map 是强引用 weakMap 是弱引用
弱引用 并不会屏蔽 垃圾回收机制的
垃圾回收机制这里我就不详细讲解 :请移步 我之前的博客
https://blog.csdn.net/yunchong_zhao/article/details/108665537
在垃圾回收算法中 有一个 引用算法 大概的意思就是 如果一个对用有其他对象引用的话 那么就不会被回收
举个例子 :var obj={a:2} var b=obj.a; 那么obj.a 被引用着 所以 obj 就不会被垃圾回收了
强引用 的不会被回收了 但是 弱引用可是会回收的 弱引用 并不会屏蔽 垃圾回收机制的
当一个对象 仅仅是被一个weakMap 作为键值引用着的话 那么 它还是会被回收的
(提示 :弱类型 不能遍历的 )
var obj={name:"zhangsan"};
var a=new WeakMap();
a.set(obj,"hello world");
console.log(a.get(obj)); // 输出 hello world
突然感觉要学习的东西 好多啊 这个vue3.0 又出来了 我还得去学习 ts vue3.0 计算机真是学无止境啊 加油 关注冲哥 持续更新前端知识