JavaScript内存空间-原始类型与引用类型

基本概念

分类:

原始类型(值类型、基本类型):Number、String、Boolean、null、undefined
引用类型:Object

原始类型与引用类型三种情况下的对比:

1.赋值:原始类型赋【值】;引用类型赋【地址】
2.比较:原始类型比较【值】是否相等;引用类型比较的是【地址】是否指向同一地址
3.函数传参:原始类型作为参数,函数内的操作不影响实参的值。引用类型作为参数,函数内的操作会影响实参的值。

    // 原始数据类型
    let str1 = "hello";
    let str2 = str1;    // str2 : hello    
    str1 = "world";    // str1 : world
    console.log(str1);
    console.log(str2);

    // 引用类型的赋值
    let stu1 = {name : "xiaoming"};
    let stu2 = stu1;    // stu2 name : xiaoming
    stu1.name = "xiaohong";    // stu1 name : xiaohong
                               // stu2 name : xiaohong
    console.log(stu1)
    console.log(stu2)
    
    // 原始类型的比较 ===
    let str3 = "hello";
    let str4 = "hello";
    console.log(str3 === str4) // true

    // 引用类型的比较
    let stu3 = {name : "xiaoming"};
    let stu4 = {name : "xiaoming"};
    console.log(stu3 === stu4) // false

    // 原始类型传参
    function fn1(num) {
        num = 100
    }
    let n = 10
    fn1(n)
    console.log(n) // 10
        
    // 引用类型传参
    function fn2(arr) { 
        arr.push(10)
    }
    let a = [1,2,3]
    fn2(a)
    console.log(a) // [1,2,3,10]
posted @ 2021-07-19 22:31  `Duet`  阅读(33)  评论(0编辑  收藏  举报