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]


相关文章
|
11月前
|
存储
基本数据类型与引用类型在存储上有什么区别?
基本数据类型与引用类型在存储上有什么区别?
|
16天前
|
JavaScript
给原始数据类型加属性和方法为什么不会报错?包装类——阿里面试题
给原始数据类型加属性和方法为什么不会报错?包装类——阿里面试题
|
2月前
|
存储 Java 程序员
|
2月前
|
存储
记录一次错误。(此声明没有存储类或类型说明符)
记录一次错误。(此声明没有存储类或类型说明符)
|
3月前
|
JavaScript 前端开发 编译器
TypeScript 中的基础类型:原始类型、对象类型、数组类型、元组类型、枚举类型和联合类型
TypeScript 中的基础类型:原始类型、对象类型、数组类型、元组类型、枚举类型和联合类型
64 1
引用传递示例,以及String类型如何传递的原理
大家都知道值传递和引用传递,下面我来通过以一个问题和示例来解决引用类型传递的原理         1)先创建了引用类型Person里面有String name 和int age          2)new 一个对象,把这个对象的值赋给a,再把a赋给Person类型的b
|
10月前
|
存储 Java
基本类型、包装类型、引用类型、String等作为实参传递后值会不会改变?
基本类型、包装类型、String类型作为参数传递之后,在方法里面修改他们的值,原值不会改变!引用类型不一定,要看是怎么修改它的。
对象的属性和值转换
对象的属性和值转换
32 0
|
C语言 C++
不同类型的变量与零究竟是如何比较(1)
不同类型的变量与零究竟是如何比较
96 0
不同类型的变量与零究竟是如何比较(1)