1、原始类型与引用类型(区别)

简介: 1、原始类型与引用类型(区别)

1、原始类型与引用类型


类型
原始类型 数值、字符串、布尔、null、undefined
引用类型 对象(Array、Date、RegExp、Math、自定义对象、第三方库引入对象)


2、赋值的区别


类型 区别
原始类型赋【值】 值发生变化,只影响一个变量。
引用类型赋【引用】 但引用指向的对象发生变化,所有指向这个对象的变量都会发生变化


    // 1、原始类型赋值
    let str1 = "Hello";
    let str2 = "World";
    str1 = "jasmine";
    console.log(str1);    // 输出结果:jasmine
    console.log(str2);    // 输出结果:World
    // 2、引用类型赋值
    let stu1 = { name: "jasmine" };
    let stu2 = stu1;
    stu1.name = "qiqi";
    console.log(stu1.name);   // 输出结果:qiqi
    console.log(stu2.name);   // 输出结果:qiqi


3、类型比较的区别


类型 区别
原始类型 比较值是否相等
引用类型 比较引用是否指向同一对象
    // 1、原始类型的比较(值是否相等)
    let str1 = "Hello";
    let str2 = "Hello";
    console.log(str1 === str2);   // 输出结果:true
    // 2、引用类型的比较(引用是否指向同一对象)
    let stu1 = { name: "jsmine" };
    let stu2 = { name: "jsmine" };
    console.log(stu1 === stu2);   // 输出结果:false

4、函数传参的区别


类型 区别
原始类型 原始类型作为参数,函数内的操作不影响实参的值
引用类型 引用类型作为参数,函数内的操作会影响实参的值


    // 1、原始类型传参
    function fun(n) {
      n = 100;
    }
    let n = 10;
    fun(n);
    console.log(n);   // 输出结果:10
    // 2、引用类型传参
    function fun1(arr) {
      arr.push(10);
    }
    let arr = [1, 2, 3];
    fun1(arr);
    console.log(arr);   // 输出结果:[1, 2, 3, 10]


相关文章
|
7月前
|
Java
值类型相关函数与对象类型相关函数内存调用过程
值类型相关函数与对象类型相关函数内存调用过程
|
7月前
|
JavaScript 前端开发 程序员
强制类型转换和隐式类型传换是什么?他们的区别又是什么?
强制类型转换和隐式类型传换是什么?他们的区别又是什么?
|
7月前
2020-10-10 数组和对象的区分方法
2020-10-10 数组和对象的区分方法
|
7月前
|
JavaScript 前端开发 编译器
TypeScript 中的基础类型:原始类型、对象类型、数组类型、元组类型、枚举类型和联合类型
TypeScript 中的基础类型:原始类型、对象类型、数组类型、元组类型、枚举类型和联合类型
80 1
引用传递示例,以及String类型如何传递的原理
大家都知道值传递和引用传递,下面我来通过以一个问题和示例来解决引用类型传递的原理         1)先创建了引用类型Person里面有String name 和int age          2)new 一个对象,把这个对象的值赋给a,再把a赋给Person类型的b
对象的属性和值转换
对象的属性和值转换
45 0
|
Java 编译器
重载的方法能否根据返回类型进行区分?
重载的方法不能根据返回类型进行区分。方法的重载是基于方法名称和参数列表来进行区分的,与返回类型无关。这是因为在Java中,编译器在确定要调用哪个重载方法时,仅根据传递给方法的参数来进行决策。
381 0
19、原始类型与引用类型
19、原始类型与引用类型
90 0
|
存储 JavaScript 前端开发
ECMAScript变量 - 原始值和引用值
ECMAScript变量 - 原始值和引用值

热门文章

最新文章