前端学习(26)~js学习(四):基本数据类型vs引用数据类型

在上一篇文章中,我们介绍过,变量有以下数据类型:

  • 基本数据类型(值类型):String 字符串、Number 数值、Boolean 布尔值、Null 空值、Undefined 未定义。
  • 引用数据类型(引用类型):Object 对象。

本文,我们针对这两种类型,做进一步介绍。我们先来看个例子。

基本数据类型举例:

    var a = 23;
    var b = a;

    a++;

    console.log(a); // 打印结果:24
    console.log(b); // 打印结果:23

上面的代码中:a 和 b 都是基本数据类型,让 b 等于 a,然后改变 a 的值之后,发现 b 的值并没有被改变。

但是在引用数据类型中,就不同了,我们来看一看。

引用数据类型举例:

    var obj1 = new Object();
    obj1.name = ‘smyh‘;

    // 让 obj2 等于 obj1
    var obj2 = obj1;

    // 修改 obj1 的 name 属性
    obj1.name = ‘vae‘;

    console.log(obj1.name); // 打印结果:vae
    console.log(obj2.name); // 打印结果:vae

上面的代码中:obj1 和 obj2 都是引用数据类型,让 obj2 等于 obj1,然后修改 obj1.name 的值之后,发现 obj2.name 的值也发生了改变。

从上面的例子中,可以反映出,基本数据类型引用数据类型是有区别的。

那到底有什么区别呢?我们进一步往下看。

栈内存和堆内存

我们首先记住一句话:JS中,所有的变量都是保存在栈内存中的。

然后来看看下面的区别。

基本数据类型:

基本数据类型的值,直接保存在栈内存中。值与值之间是独立存在,修改一个变量不会影响其他的变量。

引用数据类型:

对象是保存到堆内存中的。每创建一个新的对象,就会在堆内存中开辟出一个新的空间,而变量保存了对象的内存地址对象的引用)。如果两个变量保存了同一个对象的引用,当一个通过一个变量修改属性时,另一个也会受到影响。

原文地址:https://www.cnblogs.com/Vincent-yuan/p/12393050.html

时间: 2024-11-05 11:54:47

前端学习(26)~js学习(四):基本数据类型vs引用数据类型的相关文章

前端学习:JS学习总结(图解)

前端学习:JS学习总结(图解) JS比HTML和CSS的知识点要多的多,下面分几段来介绍其内容... 为了能让大家更好的检索,前面的图解是整个JS的概括,后面的才是知识点... 旁边就是目录,建议用目录来观看本博客...... JS的知识体系  JS的简介 JS基本语法 JS内置对象 JS的函数 JS的事件 JS的BOM JS的DOM JS的简介 JS是什么? JS能做什么? JS的历史及组成 JS的引入方式 JS基本语法 变量 原始数据类型 引入数据类型 运算符 逻辑语句 JS内置对象 JS对

【MySQL】《高性能MySQL》学习笔记,第四章,Schema与数据类型优化

[MySQL]<高性能MySQL>学习笔记,第四章,Schema与数据类型优化 良好的逻辑设计和物理设计是高性能的基石,应该根据系统将要执行的查询语句来设计schema. 反范式的设计可以加快某些类型的查询,单同时可能使另一类型的查询变慢,比如添加计数表和汇总表是一种很好的优化查询的方式,但这些表的维护成本可能会很高. 1.选择优化的数据类型 更小的通常更好. ? 应该尽量使用可以正确存储数据的最小类型,更小的数据类型通常更快,因为他们占用更少的磁盘,内存和CPU缓存,并且处理时需要的CPU周

Java学习之基本数据类型和引用数据类型区别

JAVA中分为基本数据类型和引用数据类型区别一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0 char:字符型,用于存储单个字符,占16位,即2个字节,取值范围0~65535,默认值为空 int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0 long:长整型

js中基本数据类型和引用数据类型的区别

1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值还是引用类型值. 2.常见的基本数据类型: Number.String .Boolean.Null和Undefined.基本数据类型是按值访问的,因为可以直接操作保存在变量中的实际值.示例: var a = 10; var b = a; b = 20;

JAVA中分为基本数据类型及引用数据类型

一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0 int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0 long:长整型,在内存中占64位,即8个字节-2^63~2^63-1,默认值0L float:浮点型,在内存中占32位,即4个字节,用于存储带小数点的数

JAVA中分为基本数据类型及引用数据类型(问题:堆和栈的区别,系统根据什么区分堆栈内存)

一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0 int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0 long:长整型,在内存中占64位,即8个字节-2^63~2^63-1,默认值0L float:浮点型,在内存中占32位,即4个字节,用于存储带小数点的数

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

1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值还是引用类型值. 2.常见的基本数据类型: Number.String .Boolean.Null和Undefined.基本数据类型是按值访问的,因为可以直接操作保存在变量中的实际值.示例: var a = 10; var b = a; b = 20;

JAVA-基本数据类型与引用数据类型区别

1 package com.liu.u6.copy1; 2 /* 3 * 基本数据类型与引用数据类型有什么区别 4 */ 5 public class Sjlx { 6 public int age; 7 } 8 package com.liu.u6.copy1; 9 public class TestSjlx { 10 public static void main(String[] args) { 11 System.out.println("***********************基

java中的基本数据类型和引用数据类型

java中基本数据类型有8种:byte,short,int,long,char,float,double,boolean 整型有四种:byte short,int,long byte:   1字节  -128--127 short:  2字节   -32768 -- 32767 int:  4个字节   -2147483648  -- 2147483647(超过20亿) long: 8个字节   -9223372036854775808  -- 9223372036854775807 注:jav