一、.存储上的区别

1.基本数据类型是存放在栈中的简单数据段。

2.引用数据类型是存放在堆内存中的对象,在栈内存中存放的是堆内存中具体内容的引用地址,通过这个地址可以快速查找到对象。

二、比较上的区别

1.基本数据类型的比较是值的比较

var a = '{}'

var b = '{}'

console.log(a == b) //true

直接比较值,看起来一样那么他就是一样的。

2.引用类型的比较是引用的比较

var a = {}

var b = {}

console.log(a == b) //false

问:看起来明明一样为什么会是false?

答:因为引用类型比较的是地址,也就是比较两个对象保存在栈区的指向堆内存的地址是否相同,虽然看起来一样,但是他们指向堆内存的地址是不一样的,所以两个对象不相等。

三、赋值上的区别

1.基本数据类型的赋值是简单赋值,如果一个变量向另一个变量赋值基本类型的值,会在变量对象上创建一个新值,然后把这个值复制到为新变量分配的位置上。

var a = 10

var b = a

a++

console.log(a) //11

console.log(b) //10

a在内存中保存的值是10,当使用a的值来初始化b时,b中也保存了10,这两个值是完全独立的,相当于b把a的值复制了一份,所以两个变量的任何操作都不会互相影响。

2.引用类型的赋值是对象引用

var a = {}

var b = a

a.name = "haha"

console.log(a.name) //haha

console.log(b.name) //haha

b.age = 29

console.log(a.age) //29

console.log(b.age) //29

当一个变量向另一个变量赋值引用类型的值时,同样也会将栈内存中的值复制一份放到新变量分配的空间中,但是引用类型保存在栈内存中的变量是一个地址,这个地址指向的是堆内存中的对象,所以这个变量其实复制了一个地址,两个地址指向同一个对象,改变其中任何一个变量都会互相影响。

基本数据类型和引用数据类型的区别相关推荐

  1. java中数组的返回值是什么类型_java基础学习:数组的常用操作与基础二维数组用法、及基本数据类型和引用数据类型赋值的区别...

    一.Arrays jdk中为了便于开发,给开发者提供了Arrays类,其中包含了很多数组的常用操作.例如快速输出.排序.查找等. 1.数组的常用方法 1.数组以字符串形式的输出,2.sort对数组排序 ...

  2. ES6 深拷贝_JS基本数据类型和引用数据类型的区别及深浅拷贝

    1.栈(stack)和堆(heap) stack为自动分配的内存空间,它由系统自动释放:而heap则是动态分配的内存,大小也不一定会自动释放 2.数据类型 JS分两种数据类型: 基本数据类型:Numb ...

  3. JavaScript数据类型基本数据类型与引用数据类型的区别

    JavaScript数据类型 1.JavaScript判断数据类型 typeof操作符 使用typeof操作符可以返回变量的数据类型 typeof操作符有带括号和不带括号两种用法 typeof (变量 ...

  4. JavaScript中基本数据类型和引用数据类型的区别

    1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变 ...

  5. Java中基本数据类型和引用数据类型的区别

    Java中基本数据类型和引用数据类型的区别 一.数据类型 1.基本数据类型 2.引用数据类型 二.基本数据类型和引用数据类型的区别 1.储存位置 基本变量类型 引用变量类型 2.参数传递方式 基本变量 ...

  6. 基本数据类型与引用数据类型的区别

    一.数据类型 java中的数据类型分为两大类,基本数据类型与引用数据类型. 1.基本数据类型 基本数据类型只有8种,可按照如下分类: 整数类型:long.int.short.byte: 浮点类型:fl ...

  7. Java中的基本数据类型和引用数据类型的区别

    一.数据类型 Java中的数据类型分为两大类,基本数据类型和引用数据类型. 1.基本数据类型 基本数据类型只有8种,可按照如下分类 ①整数类型:long.int.short.byte ②浮点类型:fl ...

  8. JAVA的基本数据类型和引用数据类型的区别

    JAVA的基本数据类型和引用数据类型的区别: 1.基本数据类型有:byte:Java中最小的数据类型:short:短整型:int:整型:long:长整型:float:浮点型:double:双精度浮点型 ...

  9. js基本数据类型和引用数据类型有什么区别?

    js基本数据类型和引用数据类型有什么区别? 1.基本数据类型和引用数据类型包括哪些? 基本数据类型: 在javascript中,有6种基本数据类型:string.number.boolean.null ...

  10. JavaScript中的基本数据类型与引用数据类型

    JavaScript中的基本数据类型与引用数据类型 转载自:https://www.cnblogs.com/c2016c/articles/9328725.html 1.栈(stack)和堆(heap ...

最新文章

  1. 程序计算机限制无法打开,由于一个软件限制策略的阻止,windows无法打开此程序...解决方案参考...
  2. 用 Dagger 2 实现依赖注入
  3. Java类加载笔记(1)
  4. 浅析weak指针的实现
  5. 稍稍乱入的CNN,本文依然是学习周莫烦视频的笔记。
  6. VHDL四选一数据选择器和基本触发器的设计
  7. CodeForces 14E Camels :利用1-4拼成长为n的序列,使准确含有t个峰t-1个谷,求方案数 :dp...
  8. c++中STL实现演讲比赛流程
  9. linux spinlock/rwlock/seqlock原理剖析(基于ARM64)
  10. VC 实现文件夹属性的获取与更改
  11. 大蜘蛛序列号_没事校个色?Datacolor Spyder5 Elite红蜘蛛五代校色仪体验
  12. mysql 错误代码:1293
  13. 一个asp.net聊天是源码
  14. 算法:24.两两交换链表中的节点
  15. Java基础(一)之公共基础
  16. 场内场外交易成本_场内基金与场外基金交易手续费是多少?怎么算?
  17. 如何用计算机计时,如何为win7计算机设置计时器关闭
  18. OSF Jonathan Bryce:Open Infrastructure开启开放协作新时代
  19. C(输入一个数n,求1-n之间的奇数总和)
  20. python知网查重_学长学姐使用知网查重的经验之谈

热门文章

  1. 使用MATLAB绘制二元函数图像
  2. 把字节数组转化成字符串的方法 String (byte[] bytes);String(byte[] bytes, int offset, int length);字符串数组转化成字符串
  3. Lesson 14 Do you speak English? 你会讲英语吗?
  4. MySQL的四大隔离级别,你都知道哪些?
  5. centos7中安装部署node.js
  6. 永久删除的文件如何恢复
  7. Syslog-ng TLS加密服务端配置,客户端配置。
  8. 如何使用npm更新项目依赖包
  9. VMwar 不支持Intel VT-x,但Intel VT-x处于禁用状态
  10. 信用社服务器获取安装文件失败是怎么回事,安装驱动器读取失败是怎么回事