• 카테고리

    질문 & 답변
  • 세부 분야

    웹 개발

  • 해결 여부

    미해결

유튜브 자바스크립트 파트3 강의 질문 여기다가 해도 되나요?ㅎㅎ

21.01.07 12:10 작성 조회수 123

0

dom script 유튜브 먼저 보고

수강하고

이벤트도 유튜브 먼저 보고

수강하려고 하는데

유튜브 내용에서 질문이 있어서요!

1:52 쯤 방법 3번째에서 전역변수를 만드셨었는데, var currentMenu; 이렇게 선언하셨는데 요즘은 const를 많이 쓰잖아요. 근데 const는 var과 다르게 정의 ? =으로 값을 넣어주어야만 선언할 수 있는데 const를 넣을 경우 코드 변경을 어떻게 해야할까요? ^^ 계쏙 반복 반복 보고있어요~ 인터렉스웹 강의 보기전에 이걸루 반복 학습중이에요~

또 한가지 질문인데요.

const currentMenu; // 현재 활성화된 메뉴를 담을 변수(저장 공간)

const menuLinks = document.querySelectorAll('.menu-link');

function clickMenuHandler( ) {

if (currentMenu) {

currentMenu.classList.remove('menu-active');

this.classList.add('menu-active');

currentMenu = this; 

}

for (const i = 0; i < menuLinks.length; i++) {

menuLinks[i].addEventListener('click', clickMenuHandler);

왜 menu-active에는 그냥 넣어주나요?

currentMenu.classList.remove('menu-active');

this.classList.add('menu-active');

위에 클래스는 .으로 들어가 있는데

답변 1

답변을 작성해보세요.

1

const는 상수(변하지 않는 값)를 선언할 때 사용하고, let은 변수(변하는 값)를 사용할 때 사용합니다.
즉 currentMenu에는 수시로 다른 값이 들어가야하기 때문에 const가 아니라 let을 사용하시면 됩니다^^

클래스를 지정할 때 . 을 쓰고 안쓰고는, "해당 메소드의 사용 방법이 그렇기 때문에" 입니다 ㅎㅎ
querySelector는 클래스 뿐만 아니라 id, 태그 등 CSS 선택자의 대부분이 사용하능하기 때문에 당연히 CSS 선언자 형태로 넣어주는 것이고요, classList.add는 오로지 클래스에만 해당하는 기능이기 때문에 클래스 이름만 문자열로 넣으면 동작하도록 구현이 되어있는 것이 아닐까 생각이 듭니다^^