Javascript也会更改常量变量

Javascript也会更改常量变量,javascript,node.js,Javascript,Node.js,这就是我一直在使用的代码。 过去5到6年,我一直在使用java和C++,一周后开始使用JavaScript。(对于node.js) 现在我感到困惑的是两件事: 变量过程是一个常量,但其值可以更改。怎么做 课程是从数组课程中获取的,但仍然在更改课程,当我记录课程时,我看到数组的值也已更改。这怎么可能 在这种情况下,值是否更改并不重要,但当我不希望数组更改时,我能做什么?您可以使用“查找对象引用”获得对象的浅拷贝,要打破这一点,可以使用。这种方法同样适用于未定义的,但在这种情况下会返回一个空对象

这就是我一直在使用的代码。 过去5到6年,我一直在使用java和C++,一周后开始使用JavaScript。(对于node.js)

现在我感到困惑的是两件事:

  • 变量过程是一个常量,但其值可以更改。怎么做
  • 课程是从数组课程中获取的,但仍然在更改课程,当我记录课程时,我看到数组的值也已更改。这怎么可能

  • 在这种情况下,值是否更改并不重要,但当我不希望数组更改时,我能做什么?

    您可以使用“查找对象引用”获得对象的浅拷贝,要打破这一点,可以使用。这种方法同样适用于
    未定义的
    ,但在这种情况下会返回一个空对象

    let课程=[
    {id:1,名称:“Femin”},
    {id:2,名字:“Darsh”},
    {id:3,名称:“Smit”},
    ];
    设enteredId=2;
    const course=Object.assign({},courses.find(c=>c.id==enteredId));
    course.name=“Darsh Bhimani”;
    控制台日志(课程);
    控制台日志(课程)
    
    。作为控制台包装{max height:100%!important;top:0;}
    const
    在JavaScript中仅意味着无法重新分配变量,对象的属性仍然可以更改。使用
    const
    我们可以更改对象的属性
    let courses = [
        {id:1, name : "Femin"},
        {id:2, name : "Darsh"},
        {id:3, name : "Smit"},
    ];
    
    let enteredId = 2;
    
    const course = courses.find(c => c.id === enteredId);
    
    course.name = "Darsh Bhimani";
    
    console.log(course);
    console.log(courses);