一、存储方式不一样

基本数据类型

变量存储的是简单的数据段,存储的是具体的值,是轻量级的数据存储方式

引用类型

引用类型的值,可以由多个值构成的对象,引用类型的变量存储的是对象引用地址。引用类型是重量的数据存储方式分配在堆内存频繁创建对象有损性能。

引用类型(N多) Object、Array、Date、Function、……

二、动态属性不一样

1、引用类型能动态添加属性

var person=new Object();

person.name="jack";

person.age=20;

console.log("姓名:%s,年龄:%d",person.name,person.age);

结果

说明

属性动态添加成功

2、值类型不能添加

三、赋值的方式不一样

1、值类型,拷贝变量的内容

值类型,拷贝变量的内容

var num=10;

var num2=num;//创建新的空间,拷贝num的值到num2

这个两个变量的内容是互不影响的,num2的内容是num的一个副本。类似操作系统的复件

var num=10;

var num2=num;

num2=100;//并不会影响到num的值

console.log("num=%d  num2=%d",num,num2);

结果

2、引用类型,拷贝引用地址

var person1=new Object();

person1.age=18;

var person2=person1;//拷贝引用地址,给变量person2,于是同时指向一个对象

person2.age=30;//事实上也是person1指向的那个对象

console.log("person1.age=%d   person2.age=%d",person1.age,person2.age);

结果

说明

两个变量都指向同一个对象,对象就是希望被变量引用的,引用的数量也是没有限制的。

在JavaScript中引用类型和值类型的区别的更多相关文章

  1. C#中引用类型和值类型的区别,分别有哪些

    C#的值类型包括:结构体(数值类型,bool型,用户定义的结构体),枚举,可空类型. C#的引用类型包括:数组,用户定义的类.接口.委托,object,字符串. 数组的元素,不管是引用类型还是值类型, ...

  2. 实际举例C#引用类型和值类型的区别<网摘>

    我们都知道,c#的两大数据类型分别为值类型和引用类型.很多人或许闭着眼睛都能说出值类型包括简单类型.结构体类型和枚举类型,引用类型包括自定义类.数组.接口.委托等,但是当被问及到二者之间的联系和区别, ...

  3. 【转】c#引用类型与值类型的区别大盘点

    解析:CLR支持两种类型:值类型和引用类型.用Jeffrey Richter(<CLR via C#>作者)的话来说,“不理解引用类型和值类型区别的程序员将会把代码引入诡异的陷阱和诸多性能 ...

  4. C#基础知识-引用类型和值类型的区别(六)

    在第一篇中我们介绍了C#中基本的15种数据类型,这15种数据类型中又分为两大类,一种是值类型,一种是引用类型.值类型有sbyte.short.long.int.byte.ushort.uint.ulo ...

  5. C#中引用类型和值类型

    C#的值类型包括:结构体(数值类型,bool型,用户定义的结构体),枚举,可空类型. C#的引用类型包括:数组,用户定义的类.接口.委托,object,字符串. 值类型和引用类型的区别在于,值类型的变 ...

  6. C# 引用类型与值类型的区别

    //引用类型(使用了class) class SomeRef{public Int32 x;} //值类型(使用了struct) struct SomeVal{public Int32 x;} sta ...

  7. C#中引用类型和值类型分别有哪些

  8. NET基础(4):引用类型和值类型

    CLR支持两种类型:引用类型和值类型.虽然FCL的大多数类型都是引用类型,但程序员用的最多的还是引用类型,引用类型总是从托管堆分配,c#的new操作符返回对象内存地址-即指向对象数据的内存地址.使用引 ...

  9. 《CLR via C#》读书笔记--基元类型、引用类型和值类型

    编程语言的基元类型 编译器直接支持的数据类型称为基元类型.基元类型直接映射到Framework类库中存在的类型.例如:C#中的int直接映射到System.Int32类型.下表给出了C#基元类型与对应 ...

随机推荐

  1. LAMP,LNMP 环境编译参数配置详解

    1)查看 web 服务的编译参数 a.查看 nginx 的编译参数: /home/oldboy/run/nginx/sbin/nginx -V 范例 1: [root@VM-001 ~]# /home ...

  2. SpringBoot页面展示Thymeleaf

    https://www.jianshu.com/p/a842e5b5012e 开发传统Java WEB工程时,我们可以使用JSP页面模板语言,但是在SpringBoot中已经不推荐使用了.Spring ...

  3. Linux目录的切换

    pwd:显示当前所在目录 ~:root目录 /:根目录 ls:查看当前目录下所有的文件和目录 cd usr 切换到该目录下usr目录 cd ../ 切换到上一层目录 cd / 切换到系统根目录 cd  ...

  4. framebuffer测试程序

    /* framebuffer简单测试程序 网上转载 很多次 的程序 :-) */ #include <stdio.h> #include <stdlib.h> #include ...

  5. dedecms织梦无法保存栏目内容的解决方法

    最近使用DedeCms5.3和DedeCms5.5遇到了一个不可思议的问题:在添加栏目时IE内核的浏览器无法保存栏目内容.到网上搜索了半天没找到解决方法,查看DedeCms官方搜索到的结果是“栏目内容 ...

  6. ui自动化之selenium操作(一)环境搭建

    1. python安装: 前面步骤可以看到,这里就不赘述了(我们在这里安装的是python3) 2. selenium安装: 前面我们都已经安装好pip了,所以这里咱们直接进入到python安装路径的 ...

  7. 五种I/O模型

    文档地址:https://www.cse.huji.ac.il/course/2004/com1/Exercises/Ex4/I.O.models.pdf 五种I/O模型: 1.  blocking ...

  8. windows环境下 RabbitMQ 安装时创建用户流程命令

    https://blog.csdn.net/xiaojieblog/article/details/70332469

  9. 如何提升scrapy爬取数据的效率

    在配置文件中修改相关参数: 增加并发 默认的scrapy开启的并发线程为32个,可以适当的进行增加,再配置文件中修改CONCURRENT_REQUESTS = 100值为100,并发设置成了为100. ...

  10. CodeForces-687A(DFS,染色)

    链接: https://vjudge.net/problem/CodeForces-687A 题意: Recently, Pari and Arya did some research about N ...