인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

secondjob80203642's profile image
secondjob80203642

asked

Getting Started with Interactive Web Development

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

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');

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

javascript인터랙티브-웹HTML/CSS

Answer 1

1

studiomeal님의 프로필 이미지
studiomeal
Instructor

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

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

secondjob80203642's profile image
secondjob80203642

asked

Ask a question