了解 JavaScript 中如何保存变量:作为值或引用
在 JavaScript 中,或者更确切地说,在编程中,变量是计算机内存中用于存储数据的位置。变量被声明(给定名称、标识符),并且可以立即或稍后分配一个值,具体取决于语言。然后可以在程序中稍后引用该变量,而不是再次明确地声明相同的值。
在 JavaScript 中,数据以值的形式传递,这些值可以是原始值或对象值。作为一名 JavaScript 开发人员,了解 JavaScript 如何处理数据对于拥有扎实的语言基础至关重要。
原始值包括:
弦.数字.布尔值.BigInt.符号.未定义。
另一方面,对象值是:
立即学习“Java免费学习笔记(深入)”;
数组。功能.物体.
这些值类型在传递时表现不同,请考虑下面的代码片段:
var myName = “Fred”;
var otherName = myName;
myName =“阿什利”;
console.log(我的名字); //阿什利
console.log(其他名称); //弗雷德
请注意,otherName 保持不变,尽管它看起来像是 myName 的“副本”。事实上,实际发生的情况是,当 otherName 被分配给 myName 时,它并没有被分配为字符串“Fred”的副本,而是创建了一个新字符串“Fred”。因此,myName 和 otherName 之间没有直接链接。这就是 JavaScript 传递原始值的方式。
对象值的处理方式不同,请看下面的代码片段:
var myObj = {颜色:“红色”};
var otherObj = myObj;
myObj.color = “蓝色”;
console.log(myObj.color); //蓝色
console.log(otherObj.color); //蓝色
这里,创建了对象并将其分配给 myObj,然后将其分配给 otherObj,看看如何仅通过更改 myObj 的颜色属性来更改 otherObj 和 myObj 颜色属性。这是因为对象值作为引用传递。 myObj 不直接引用该对象,而是指向其引用,然后将 otherObj 分配给 myObj,它是对真实对象的引用。因此,两个变量都链接到同一个对象,因为它们指向相同的引用,其中一个变量的更改会影响另一个变量。
这就是为什么两个对象的比较(===)直接返回 false,你实际上是在比较两个不同的引用。这里, myObj === otherObj 返回 true,因为我们正在比较相同的引用。
我希望这能让您对 JavaScript 在幕后如何工作有一个全新的视角。
在那之前,请保持没有错误。
以上就是JavaScript 值与引用的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2673589.html