js变量按照存储方式区分,有哪些类型,并表述其特点

原始类型储存在栈(Stack)中储存变量的值,而引用类型在栈中保存的是所引用内容储存在堆(Heap)中的值
类似于指针的概念,引用类型并非储存变量真实数值而是地址,所以对已引用类型的复制其实只是复制了相同的地址而非实际的变量值

值类型

复制代码
值类型(基本/原始数据类型) 拷贝形式 
不像引用类型是指针指向,共用空间 
值类型有 undefined string number Boolean

var a = 100;
var b = a;
var a = 200;
console.log(a)//200
console.log(b)//100
复制代码

引用类型

// 引用类型  引用类型有 数组 函数
var c = [1,2]
var d = c; //指针指向
d.push(3);
console.log(c)//[1,2,3]
console.log(d)//[1,2,3]

解决引用类型指针指向问题

复制代码
引用类型有 数组 函数

方式1 原始的循环
let c = [1,2,3]
let d = []; 
  for(let i=0;i<e.length;i++){
        d.push(c[i]) //push
   } 

方式2 使用扩展运算
let d = [...c]
f.push(4)

方式3 合并对象方式
let d = Object.assign([],c)  //  前面的 {} [] 是看你输出的类型
d.push(4);

方式4  使用slice复制
let d = c.slice();
d.push(4);
复制代码

 

posted @   xuanPhoto  阅读(706)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
点击右上角即可分享
微信分享提示