Javascript 当我使用for循环时,我尝试重新分配一个变量的值并再次使用该变量,最终,我';我们得到变量的上一个值了吗?

Javascript 当我使用for循环时,我尝试重新分配一个变量的值并再次使用该变量,最终,我';我们得到变量的上一个值了吗?,javascript,Javascript,我尝试在循环结束时反复增加变量的值,然后使用增加的值生成一个数组,变量值保持不变 let chunk=[]; for(设i=0;i

我尝试在循环结束时反复增加变量的值,然后使用增加的值生成一个数组,变量值保持不变

let chunk=[];
for(设i=0;i<5;i++){
让我们开始;//然后使用重新分配的值
如果(!start)start=0
推送(开始);
start+=5//我正在尝试重新分配值
}
console.log(块)

//结果:[0,0,0,0,0,0]| |预期[0,5,10,15,20]
您正在循环内部声明值
start
,该值将在循环的每次迭代中重置其值。将其移动到循环外部:

let chunks = [];
let start;
for (let i = 0; i < 5; i++) {
    if(!start) start = 0 
    chunks.push(start);
    start += 5
}
console.log(chunks)
let chunk=[];
让我们开始;
for(设i=0;i<5;i++){
如果(!start)start=0
推送(开始);
开始+=5
}
console.log(块)

您正在循环内声明值
start
,该值将在循环的每次迭代中重置其值。将其移动到循环外部:

let chunks = [];
let start;
for (let i = 0; i < 5; i++) {
    if(!start) start = 0 
    chunks.push(start);
    start += 5
}
console.log(chunks)
let chunk=[];
让我们开始;
for(设i=0;i<5;i++){
如果(!start)start=0
推送(开始);
开始+=5
}
console.log(块)

把它移到外面去!这是一个很好的解释

let chunk=[];
让我们开始吧然后使用重新分配的值
对于(设i=0;i<5;i++){
如果(!start)start=0
推送(开始);
start+=5//我正在尝试重新分配值
}
console.log(块)
//结果:[0,5,10,15,20]

把它移到外面去!这是一个很好的解释

let chunk=[];
让我们开始吧然后使用重新分配的值
对于(设i=0;i<5;i++){
如果(!start)start=0
推送(开始);
start+=5//我正在尝试重新分配值
}
console.log(块)
//结果:[0,5,10,15,20]

您正在为循环内部声明变量。将变量声明移到循环之外

let chunk=[];
让我们开始;
for(设i=0;i<5;i++){
如果(!start)start=0
推送(开始);
start+=5//我正在尝试重新分配值
}

log(chunks)
您正在为循环内部声明变量。将变量声明移到循环之外

let chunk=[];
让我们开始;
for(设i=0;i<5;i++){
如果(!start)start=0
推送(开始);
start+=5//我正在尝试重新分配值
}

console.log(chunks)
原语值(数字、布尔值、字符串)按值传递而不是按引用传递(它们被复制)原语值(数字、布尔值、字符串)按值传递而不是按引用传递(它们被复制)或只是<代码>让开始=0并完全删除
if
块。@PatrickRoberts的观点很好,但我把它放在那里了,因为这是OP代码的一部分,没有被破坏,只是非常规的。或者只是<代码>让开始=0并完全删除
if
块。@PatrickRoberts的观点很好,但我把它放在那里了,因为这是OP代码的一部分,没有被破坏,只是非常规的。