Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以更改定义为两个其他变量(1 let和1 const)之差的let变量的值?_Javascript_Variables - Fatal编程技术网

Javascript 是否可以更改定义为两个其他变量(1 let和1 const)之差的let变量的值?

Javascript 是否可以更改定义为两个其他变量(1 let和1 const)之差的let变量的值?,javascript,variables,Javascript,Variables,这是我的例子 const birthYear = 1966; let currentYear = 2021; let age = currentYear - birthYear; console.log(age); currentYear = 2025; console.log(currentYear); console.log(age); 这是控制台结果的屏幕截图。第一个console.log(age)返回55。第二个console.log(age)也返回55。我的预期是,将curren

这是我的例子

const birthYear = 1966;
let currentYear = 2021;

let age = currentYear - birthYear;
console.log(age);

currentYear = 2025;
console.log(currentYear);
console.log(age);

这是控制台结果的屏幕截图。第一个console.log(age)返回55。第二个console.log(age)也返回55。我的预期是,将currentYear的值更改为2025年后,它还会将第二个console.log(age)更改为59。

更新
currentYear
的值后,
的值未重新分配。
你可以通过将年龄定义为一个函数来实现你正在做的事情

const birthYear = 1966;
let currentYear = 2021;

let age = () => (currentYear - birthYear);
console.log(age());

currentYear = 2025;
console.log(currentYear);
console.log(age());

JavaScript不是这样工作的。 变量
age
被指定
currentYear-birthYear
值,即
55


事实上,
age
不知道它的价值从何而来。从字面上讲,这与让年龄=55岁是一样的,这里有一个更简单的方法。只需重新计算年龄并将其传递给变量age,因为在重新计算年龄之前,变量age仍然保持其先前的值55

const birthYear = 1966;
let currentYear = 2021;

let age = currentYear - birthYear;
console.log(age);

currentYear = 2025;
console.log(currentYear);
// now currentYear is 2025 here
age = currentYear - birthYear;
console.log(age);

酷!非常感谢!:)这个答案帮助我做了我想做的事情:)很高兴它帮助了我:)我猜上一个答案和这个答案之间的区别是-在第一个例子中,可变年龄是一个函数,它计算了每次调用时的年龄值,因此当前年份变量每年都会发生变化,年龄函数仍然有效。在第二个示例中,年龄变量存储一个值,因此当当前年份发生变化时,我每次都必须重新分配变量。你怎么认为?谢谢!:)这个答案帮助我思考我正在尝试做什么,以及如何最好地解决这个挑战:)欢迎@Elhalvers……这个答案帮助我更好地理解变量是什么以及赋值在做什么:)