闲谈一下 js中的 弱类型 和 弱引用

我翻了很多文档 找不到我想要的答案 我也算是综合下他们的观点 ,发表自己的看法

都说js是弱类型 语言 那么 究竟 “弱” 在哪里了

举个例子说明哈 如果仅凭 语言来说的话 很难把这个实践性强的学科掌握好的

  1. 弱类型 只可意会不可言传 哈
var a=20;
typeof a; // number
a="hello world";
typeof a; string

好了 例子举完了
js 不像 c java 那种强类型语言 变量从一开始定义的时候 就确定了他的 类型

就像男孩和女孩一样 从一开始就确定了 性别 (第三型别的除外)

js 我定义了一个a 一开始 是 数值类型的 赋值成 字符串后 就变成了 字符类型 真是一个墙头草 这种行为现实中 可不要模仿哈

  1. 弱引用
    弱引用这个 概念之前见到过一道面试题
    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 计算机真是学无止境啊 加油 关注冲哥 持续更新前端知识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yunchong_zhao

帮到你了,请作者喝杯矿泉水可好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值