WEB程序员笔记

一个前端开发工程师的个人博客

JavaScript原始类型与参考类型

JavaScript有两种数据类型:

  • 原始类型
  • 参考类型

1)原始类型

  • 它由NumberStringBooleannullundefined组成
  • 如果我们将基本类型分配给变量,则可以在将特定值放入特定存储盒中时想到它。
  • 当我们将一个变量的值分配给另一个变量时,它将被复制到该新变量中。

让我通过一个例子让您更清楚:

《JavaScript原始类型与参考类型》

看一个上面的简单示例,我通过分配String基本类型定义了名称变量。为了证明上述有关基本类型的要点,我创建了第二个变量,其名称为anotherName,并将名称变量的值复制到其中。然后,我将anotherName变量的值更改为其他值。然后,我打印了两个变量。

正如您可以清楚地看到的,两个值都不同,这清楚地证明了在原始类型的情况下值是复制的。

2)参考类型

  • 现在您可能可以猜测引用类型。它由ArrayObjectFunction组成
  • 对于引用类型,变量实际上没有实际值,但它包含对该特定值的引用。
  • 在此,引用仅表示指向保存特定值的另一个存储位置的指针。乍一看,这可能会让您感到困惑,但请多多包涵。一旦您通过它,对您来说将非常清楚。

例:

《JavaScript原始类型与参考类型》

在上面的示例中,我使用了一个数组来演示JavaScript中引用类型的工作。首先,我定义了arr1,其中包含三个元素。然后,通过将arr1复制到其中来定义arr2。现在,让我通过更改arr2中的元素之一来揭示魔术。然后,尽管我没有碰过arr1,但我同时打印了数组和惊喜,它们都具有更新后的值。

由于JavaScript中引用类型的默认行为而产生了此结果。如前所述,引用类型不是在复制实际值,而是将引用保留在内存中。

您可能有一个问题,为什么我们可以简单地仅复制值来创建引用类型:
答案:在将值分配给变量时,仅复制值并不总是最佳选择。因为复制值将花费大量开销,因为它需要分配一个新的内存块并将值从该位置复制到此新分配的内存位置。基本类型的情况下,这很容易,因为它不包含许多值作为数组或对象。

因此,实现此行为是为了节省时间和内存。:)

到此结束主题,原始类型与引用类型。有时,开发人员可能认为这不是重要的话题。但是,由于您了解特定语言的基础知识,因此它始终可以使您在技术上成为可靠的开发人员。

希望您喜欢它,并在下面进行评论,让我知道您对这个主题的想法。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注