[Javascript] JavaScript赋值时的传值与传址
JavaScript中有两种不同数据类型的值,分别是基本数据类型与引用数据类型
- 基本数据类型包含5类,分别是:Number、String、Boolean、Null、Undefined
- 引用数据类型包含剩下的Array、Date、Math、RegExp、Object、Function等
将一个值赋给变量时,解析器必须确定这个值是基本类型还是引用类型。
- 基本类型是按值直接访问的
- 引用类型是按引用访问的
基本数据类型赋值:
//此处是基本数据类型对的赋值 //最后在改变了b的值得情况下,a的值不受影响 var a = 1; var b = a; b = 10; console.log(a); //1
如果从一个变量向另一个变量复制基本类型的值,会在变量变量对象上创建一个新值,然后把该值复制到为新变量分配的位置上
引用数据类型赋值
1 2 3 4 5 6 7 | //此处是引用数据类型的赋值 //在arr2变化的情况下,arr1也会同步变更 var arr1 = [1,2,3,4]; var arr2 = arr1; arr2[0] = 10; console.log(arr1[0]); //10 |
当从一个变量向另一个变量复制引用的值时,同样也会将存储在变量对象中的值复制一份放到为新变量分配的空间中。不同的是,这个值的副本实际上是一个指针,而这个指针指向存储在堆中的一个对象。复制操作结束后,两个变量实际上引用同一个对象。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2017-07-31 [React Intl] Use Webpack to Conditionally Include an Intl Polyfill for Older Browsers
2017-07-31 [React Intl] Use a react-intl Higher Order Component to format messages
2017-07-31 [React Intl] Get locale value from intl injector
2017-07-31 [React Intl] Render Content Based on a Number using react-intl FormattedMessage (plural)
2014-07-31 [Node.js]32. Level 7: Working with Lists -- Redis
2014-07-31 [Node.js]31. Level 7: Redis coming for Node.js, Simple Redis Commands
2014-07-31 [Node.js]30. Level 6: Listen 'Question' from client, and then Answer the Question