LuckyWinty / fe-weekly-questions

A pro to record some interview questions every week...
MIT License
342 stars 34 forks source link

JavaScript 有几种类型的值?你能画一下他们的内存图吗? #75

Open LuckyWinty opened 3 years ago

LuckyWinty commented 3 years ago

js 可以分为两种类型的值,一种是基本数据类型,一种是复杂数据类型。

基本类型分别是分别是 Undefined、Null、Boolean、Number、String,还有 在 ES6 中新增的 Symbol 类型,代表创建后独一无二且不可变的数据类型,它的出现我认为主 要是为了解决可能出现的全局变量冲突的问题。

复杂数据类型指的是 Object 类型,所有其他的如 Array、Date 等数据类型都可以理解 为 Object 类型的子类。两种类型间的主要区别是它们的存储位置不同,基本数据类型的值直 接保存在栈中,而复杂数据类型的值保存在堆中,通过使用在栈中保存对应的指针来获取堆中的 值。

图示及更多参考:https://www.cnblogs.com/cxying93/p/6106469.html