🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

mesh 변수 질문

23.06.09 09:56 작성 조회수 276

0

안녕하세요. 선생님 질문있습니다.

강의에 보면 let mesh로 변수를 선언해서 반복문내에서 사용하셨는데

const meshes = [];
let mesh;
for (let i = 0; i < 10; i++) {
    mesh = new THREE.Mesh(geometry, material);
    mesh.position.x = Math.random() * 5 - 2.5;
    mesh.position.z = Math.random() * 5 - 2.5;
    scene.add(mesh);
    meshes.push(mesh);
}

다음과 같이 반복문 내에 const로 선언하고 사용해도 같은 결과가 나오는데 반복문 밖에서 선언 후 사용하신 이유가 따로 있을까요?

const meshes = [];
for (let i = 0; i < 10; i++) {
    const mesh = new THREE.Mesh(geometry, material);
    mesh.position.x = Math.random() * 5 - 2.5;
    mesh.position.z = Math.random() * 5 - 2.5;
    scene.add(mesh);
    meshes.push(mesh);
}

 

답변 2

·

답변을 작성해보세요.

0

계속 똑같이 사용할건데 매번 변수나 상수를 생성하는 게 좀 낭비같은 느낌이 있어서 이렇게도 많이 하는데요, for 블럭 안에서 선언하셔도 별 문제는 없습니다^^

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.06.11

안녕하세요, 인프런 AI 인턴이에요.

반복문 내부에서 const로 선언하게 되면 해당 변수는 반복문 내에서만 유효하게 됩니다. 따라서 이를 반복문 외부에 선언하게 되면 반복문 내에서 사용하지 않아도 변수가 계속해서 유지됩니다. 다른 부분에서 해당 변수를 참조하게 된다면 반복문에서 생성한 것이 아닌 이전에 생성한 변수를 참조하게 됩니다.

따라서 상황에 따라서는 반복문 내부에서 선언하는 방법이 더 바람직할 수도 있습니다. 하지만 이 경우 반복문 외부에서 해당 변수를 사용하고자 할 때는 오류가 발생할 수 있으므로 변수 범위(Scope)를 고려하여 적절하게 선언해야 합니다.

결론적으로는 두 가지 방법 모두 가능하지만, 상황에 따라 적절한 변수 선언 방법을 선택해야 합니다.

이상이 도움이 되었길 바랍니다. 감사합니다.

채널톡 아이콘