JavaScript 值类型与引用类型

102 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第5天,点击查看活动详情

前言

本文主要介绍了JavaScript 两种数据类型值类型、引用类型。并介绍了值类型与引用类型的存储区别。

JS数据类型

JS有两种数据类型分别为值类型,引用类型

  • 值类型:Number、String、Boolean、Null、 Undefined、Symbol(ES6);
  • 引用类型:Object;

值类型

值类型存放在栈中,可以直接按值访问。

       let a = 20;
       let b = a;
       a = 10;
       console.log(b);     //20

值类型在栈中存储值,示意图:

在这里插入图片描述

引用类型

引用类型数据在栈内存中保存引用地址,通过引用地址查找到堆内存中的对象。

       let a = { name: "zhangsan"};
       let b = a;
       a.name = "张三";
       console.log(b);    //{name: "张三"}

引用类型在栈中存储保存引用地址,示意图:

在这里插入图片描述

通过引用地址查找到堆内存中的对象,示意图: 在这里插入图片描述

       const a = { name: "zhangsan", age: 18};
       const b = a;
       let c = a.name;
       b.age = 20;
       c = "张三";
       console.log(b);    //{name: "zhangsan", age: 20}

值类型和引用类型区别

  • 值类型存放在栈中,可以直接按值访问;

  • 引用类型数据在栈内存中保存引用地址,通过引用地址查找到堆内存中的对象;

总结

  • 值类型:Number、String、Boolean、Null、 Undefined、Symbol(ES6);
  • 引用类型:Object;
  • 值类型存放在栈中,可以直接按值访问;
  • 引用类型数据在栈内存中保存引用地址,通过引用地址查找到堆内存中的对象;

结语

本小节到此结束,谢谢大家的观看!

如有问题欢迎各位指正