인프런 커뮤니티 질문&답변

ky.song님의 프로필 이미지
ky.song

작성한 질문수

Three.js로 시작하는 3D 인터랙티브 웹

안개(Fog)

mesh 변수 질문

작성

·

323

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

1분코딩님의 프로필 이미지
1분코딩
지식공유자

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

0

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

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

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

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

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

ky.song님의 프로필 이미지
ky.song

작성한 질문수

질문하기