강의

멘토링

커뮤니티

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

khhan1990님의 프로필 이미지
khhan1990

작성한 질문수

[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기

QnA 구현하기

start.js에서 변수 선언에 대한 질문입니다.

작성

·

189

1

안녕하세요.

start.js에서 변수를 선언하실 때

어떤 변수 ex)

const main = document.querySelector("#main");
const qna = document.querySelector("#qna");

는 start.js 제일 위로 뽑아서 선언을 해주시는데

어떤 변수 ex1)

 answer.addEventListener("click"function(){
        var children = document.querySelectorAll('.answerList');
        for(let i = 0i < children.lengthi++){
            children[i].disabled = true;
            children[i].style.display = 'none';
        }
        goNext(++qIdx);
    }, false)
}

혹은 ex2)

function goNext(qIdx) {
    var q = document.querySelector('.qBox');
    q.innerHTML = qnaList[qIdx].q;
    for(let i in qnaList[qIdx].a){
        addAnswer(qnaList[qIdx].a[i].answerqIdx);
    }
}

goNext함수의 q 혹은 children 같은 변수들은

함수 안에 넣어주시는 것을 봤습니다.

혹시 변수를 선언할 때 규칙(?) 같은 것들이 있는지 알려주시면 감사하겠습니다.

답변 1

0

판다코딩님의 프로필 이미지
판다코딩
지식공유자

변수의 유효범위에 대하여 의문점을 가지고 계시는 것 같습니다.

변수는 선언된 함수 내에서만 사용할 수 있습니다.

가령 세번째 사진에서의 변수 q는 goNext함수에서만 유효합니다.

다른 함수에서는 변수q를 사용할 수 없습니다.

이처럼, 일반적으로 변수는 필요한 함수 내부에서 선언하는 것이 원칙입니다.

하지만 첫번째 사진의 main이나 qna같은 변수는 사용하는 함수가 많습니다.

많은 함수들이 전역으로 사용할 수 있도록 파일의 최상단에 선언한 것입니다.

khhan1990님의 프로필 이미지
khhan1990
질문자

기본적인 내용이었는데 제가 공부가 부족했던 것 같네요.

답변 감사합니다.

khhan1990님의 프로필 이미지
khhan1990

작성한 질문수

질문하기