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]


相关文章
|
Linux
Linux命令行文档查看cat、less、more、head、tail和图片查看
Linux命令行文档查看cat、less、more、head、tail和图片查看
412 0
|
机器学习/深度学习 人工智能 测试技术
Qwen2.5-Max 再创佳绩,闯入 LiveBench 全球前十
Qwen2.5-Max 再创佳绩,闯入 LiveBench 全球前十
|
Java Linux 网络安全
树莓派的开发环境搭建教程
本教程详细介绍如何在树莓派上搭建开发环境,包括系统安装、配置网络、设置开发工具等步骤,适合初学者快速上手。
1020 7
|
消息中间件 运维 Java
支付系统的心脏:简洁而精妙的状态机设计与核心代码实现
本篇主要讲清楚什么是状态机,简洁的状态机对支付系统的重要性,状态机设计常见误区,以及如何设计出简洁而精妙的状态机,核心的状态机代码实现等。 我前段时间面试一个工作过4年的同学竟然没有听过状态机。假如你没有听过状态机,或者你听过但没有写过,或者你是使用if else 或switch case来写状态机的代码实现,建议花点时间看看,一定会有不一样的收获。
|
网络安全 Nacos 开发者
【Nacos】神操作!节点提示暂时不可用?别急!7步排查法+实战代码,手把手教你解决Nacos服务实例状态异常,让服务瞬间满血复活!
【8月更文挑战第15天】Nacos作为微服务注册与配置中心,虽广受好评,但仍可能遇到“节点提示暂时不可用”的问题。本文解析此现象及其解决之道。首先需理解该提示意味着服务实例未能正常响应。解决步骤包括:检查服务状态与网络、审查Nacos配置、调整健康检查策略、重启服务及分析日志。通过系统化排查,可有效保障服务稳定运行。
1140 0
|
Python 数据挖掘 数据可视化
Python数据分析——Pandas与Jupyter Notebook
【6月更文挑战第1天】 本文探讨了如何使用Python的Pandas库和Jupyter Notebook进行数据分析。首先,介绍了安装和设置步骤,然后展示了如何使用Pandas的DataFrame进行数据加载、清洗和基本分析。接着,通过Jupyter Notebook的交互式环境,演示了数据分析和可视化,包括直方图的创建。文章还涉及数据清洗,如处理缺失值,并展示了如何进行高级数据分析,如数据分组和聚合。此外,还提供了将分析结果导出到文件的方法。通过销售数据的完整案例,详细说明了从加载数据到可视化和结果导出的全过程。最后,讨论了进一步的分析和可视化技巧,如销售额趋势、产品销售排名和区域分布,以及
|
定位技术 图形学
地心地固坐标系(ECEF)与站心坐标系(ENU)的转换
地心地固坐标系(ECEF)与站心坐标系(ENU)的转换
1209 0
|
分布式计算 Hadoop Shell
Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
【4月更文挑战第4天】Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
841 5
|
前端开发 JavaScript Java
基于Jeecgboot前后端分离的聊天功能正式发布
基于Jeecgboot前后端分离的聊天功能正式发布
244 0
|
物联网 Java 测试技术
蓝桥杯-01简介
蓝桥杯-01简介

热门文章

最新文章