Written on
·
180
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');
위에 클래스는 .으로 들어가 있는데
Answer 1
1
const는 상수(변하지 않는 값)를 선언할 때 사용하고, let은 변수(변하는 값)를 사용할 때 사용합니다.
즉 currentMenu에는 수시로 다른 값이 들어가야하기 때문에 const가 아니라 let을 사용하시면 됩니다^^
클래스를 지정할 때 . 을 쓰고 안쓰고는, "해당 메소드의 사용 방법이 그렇기 때문에" 입니다 ㅎㅎ
querySelector는 클래스 뿐만 아니라 id, 태그 등 CSS 선택자의 대부분이 사용하능하기 때문에 당연히 CSS 선언자 형태로 넣어주는 것이고요, classList.add는 오로지 클래스에만 해당하는 기능이기 때문에 클래스 이름만 문자열로 넣으면 동작하도록 구현이 되어있는 것이 아닐까 생각이 듭니다^^