技术文摘
JavaScript 中的值与引用
2025-01-09 19:23:14 小编
JavaScript 中的值与引用
在 JavaScript 编程中,理解值与引用的概念至关重要,它们深刻影响着代码的行为和数据的处理方式。
JavaScript 中有两种基本的数据存储类型:基本数据类型和引用数据类型。基本数据类型包括 Number、String、Boolean、Null、Undefined、Symbol。这些类型的值是直接存储在栈内存中的,它们占据固定的空间大小。例如:
let num1 = 5;
let num2 = num1;
num2 = 10;
console.log(num1);
在这个例子中,num1 赋值给 num2 时,num2 得到的是 num1 的值的副本。当 num2 的值改变时,num1 不受影响,依然为 5。这体现了基本数据类型按值传递的特性。
而引用数据类型,如 Object、Array、Function 等,其值存储在堆内存中,栈内存中存储的是指向堆内存中实际数据的引用。例如:
let obj1 = {name: 'John'};
let obj2 = obj1;
obj2.name = 'Jane';
console.log(obj1.name);
这里 obj2 被赋值为 obj1 时,obj2 获得的是 obj1 的引用,它们指向堆内存中的同一个对象。所以当 obj2 修改对象的属性时,obj1 也会反映出同样的变化,输出结果为 'Jane'。
在函数参数传递方面,基本数据类型和引用数据类型也有不同表现。基本数据类型作为参数传递时,函数内部对参数的修改不会影响到函数外部的原始值;而引用数据类型作为参数传递时,函数内部对其属性的修改会反映到函数外部。
function changeNumber(num) {
num = num + 1;
}
let number = 10;
changeNumber(number);
console.log(number);
function changeObject(obj) {
obj.age = 30;
}
let person = {age: 25};
changeObject(person);
console.log(person.age);
深入理解 JavaScript 中的值与引用,能帮助开发者避免许多潜在的错误,编写出更高效、可靠的代码。无论是处理简单数据还是复杂的对象结构,正确把握这一概念都是优化代码逻辑和提升程序性能的关键。
- 漫谈:怎样向女友解释删库跑路
- 信天通信荣膺“2020 中国通信产业榜”两项大奖
- 杭州程序员手工打造“波音 737 驾驶舱”
- 六种常用架构设计模式之一
- Java 8 中接口与抽象类的区别究竟是什么?
- 漫画:探寻链表倒数第 n 个结点的方法
- C 语言编程快速入门
- Vue 里 Axios 的封装及 API 接口管理
- 两年前端 7 - 9 月面试经历汇总
- 即时消息应用的构建(九):Conversation 页面
- Python 爬虫:常用爬虫技巧汇总
- 掌握并发编程的关键:理解这三个核心问题!
- 倘若 Web 最初未支持动态化
- 你是否真正了解 JWT (JSON Web Token) ?
- Javascript 基础进阶:面向对象与原型原型链