sách gpt4 ai đã đi

javascript - cơ bản - tham chiếu biến

In lại 作者:行者123 更新时间:2023-11-30 10:30:38 26 4
mua khóa gpt4 Nike

如果我的术语在这个问题上有误,我们深表歉意。

采取以下功能:

i = 1;
v = i * 2;

for (j = 0; j < 4; j++ ) {
console.log(v);
i++;
}

控制台将返回 2、2、2、2。当我遇到这个时,我将变量“v”移到 for 循环中,它返回预期值 2、4、6、8。我对这种方式的理解变量在基本层面起作用的说法显然是错误的。

我的逻辑告诉我,变量 v 的值与变量 i 的值永久相关。因此,每次引用 v 时,也必须引用 i 的值。由于 i 会在数值上增加,因此 v 应该与此成比例增加。相反,它似乎存储了 v 的结果值,而不是最初计算该值的实际表达式。

这是一个第一性原理问题,虽然我设法找到了问题的解决方案,但我不明白为什么这个解决方案有效。

1 Câu trả lời

Phương pháp đầu tiên

i = 1;
// v is equal to the result of "i * 2" (2) and will stay that way
// until it (v) is set to another value (which never happens)
v = i * 2;

for (j = 0; j < 4; j++ ) {
console.log(v);
i++;
}

Phương pháp thứ hai

i = 1;

for (j = 0; j < 4; j++ ) {
// v is equal to i*2, we are setting v each iteration. in each iteration, i is
// changed. so the value of v will be different
v = i * 2;
console.log(v);
i++;
}

如果出于某种原因你不想在循环中每次显式设置 v,你可以创建一个函数:

i = 1;
v = function(){ return i * 2 };

for (j = 0; j < 4; j++ ) {
console.log(v());
i++;
}

关于javascript - 基础 - 变量引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17133685/

26 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com