zoukankan      html  css  js  c++  java
  • 关于基本数据类型和引用数据类型的原理和区别

    一:基本数据类型:

    一般由单一数据组成,不会太复杂,传递的是值value,完全在栈里面进行的操作,不涉及到堆,只有赋值

    代码实例如下:

    var i = 10;
    var m = i;
    var m = 16;
    console.log(i);


    此时打印的i是10,在这里只是把i的值(10)赋给了m,但是在代码第三行的时候又进行了对m的赋值运算,但是此时并
    不影响i,两个是独立存在的,所以结果是10;

    二:引用数据类型:
    多为数组和对象等复杂的数据类型,传递的是地址,多个地址指向堆里的同一组数据,一个地址进行赋值改变,也会影响另一个地址数据的改变

    代码示例如下:
    var arr = [1,2,3,4,5];
    var arr1 = arr;
    arr1[0] = 10;
    console.log(arr[0]);


    此时打印出来的结果是10,arr和arr1存放在了栈里面,但是它们都指向了堆里面的同一组数据,即[1,2,3,4,5],当arr1[0]赋值为10的时候,堆里面的
    数据就变为了[10,2,3,4,5],由于两个地址用的一组数据,故arr的数据也跟着发生了变化

    原理如下图所示:

    
    
     
  • 相关阅读:
    Git 9. 远程仓库
    Git 8. 删除文件
    Git 7. 撤销修改
    # 并发编程 -进程理论-进程的方法
    socket 上传 -- 异常处理--UDP协议 --自定义socket #29
    socket(套接字)
    面向过程补充 网络编程 #27
    ATM
    选课系统 -- # 25 -26
    面向对象高级 1.反射 2.元类 # 24
  • 原文地址:https://www.cnblogs.com/mmykdbc/p/6485947.html
Copyright © 2011-2022 走看看