可变还是不可变:了解 JavaScript 的阴阳

妖狐艹你老母 2023-09-27 18:02 161阅读 0赞

作为 JavaScript 开发人员,了解可变性和不变性的概念至关重要。这些概念指的是对象是否可以更改的能力。可变性意味着可以更改对象,而不变性意味着对象一旦创建就不能更改。

让我们进一步探讨这些概念,看看它们如何影响我们的代码。

可变性
在 JavaScript 中,大多数对象默认是可变的。这意味着您可以更改它们的属性、添加新属性,甚至删除属性。例如,考虑以下代码:

let person = {
name: “John”,
age: 30,
};

person.age = 31;
console.log(person);

在此示例中,我们正在更改 person 对象的 age 属性的值。这是可能的,因为 JavaScript 中的对象是可变的。

虽然可变性在某些情况下很有用,但它也可能导致意外行为。考虑以下代码:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr2.push(4);

console.log(arr1); // Output: [1, 2, 3, 4]

在这个例子中,我们创建了两个数组arr1和arr2。然后我们分配arr1给arr2,这意味着它们都引用同一个对象。然后我们向 中添加一个新元素arr2,该元素也会进行修改,arr1因为它们是同一个对象。这可能会导致我们的代码出现意想不到的错误。

不变性
另一方面,不变性意味着对象一旦创建就无法更改。在 JavaScript 中,字符串和数字等基本类型是不可变的。这意味着一旦创建它们,您就无法更改它们的值。

例如,考虑以下代码:
let str = “Hel

发表评论

表情:
评论列表 (有 0 条评论,161人围观)

还没有评论,来说两句吧...

相关阅读

    相关 可变长度参数了解

    可变长度参数: int… args:这就是可变长度参数。 语法:数据类型…(注意:一定是写3个点) 1、可变长度参数要求的参数个数是:0 ~ N个任意。 2、可变长度

    相关 python 可变可变变量

    不可变变量 操作某个对象时,重新开辟了内存,使其内存地址改变了,我们称其为可变对象,反之称为不可变变量 我们可以通过下面的例子来感受上面的话 x=1

    相关 可变对象与可变对象

    前阵子我们聊了下函数的参数传递以及变量赋值的一些内容:[关于函数参数传递,80%人都错了][80] 简单回顾下要点: 1. Python 中的变量不是装有对象的“容器”,而