유튜브 자바스크립트 파트3 강의 질문 여기다가 해도 되나요?ㅎㅎ
197
작성한 질문수 40
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는 오로지 클래스에만 해당하는 기능이기 때문에 클래스 이름만 문자열로 넣으면 동작하도록 구현이 되어있는 것이 아닐까 생각이 듭니다^^
왼쪽/오른쪽 동작시 딜레이 문제
0
93
1
변수 범위 관련 질문
0
106
1
perspective 문의
0
100
1
생성자 함수를 클래스 함수로 변경 하고 this 오류 관련
0
150
1
스크롤이 중간 위치에 있을 때 창의 크기를 변환하면 생기는 문제
0
127
1
animation이벤트 질문이요!
0
71
1
resize handler에서 질문이 있습니다.
0
110
1
카드 뒤집힐 때 F가 보인 이유
0
149
1
3d 뒤집기 추가효과
0
217
1
전진! 3D 스크롤 21 강의 질문
1
171
1
eventlistener 질문
0
148
1
zMove 를 1000으로 설정하는 이유에 대하여.
0
168
1
[정보-23강] ES6 class 문법으로 공부하시는 분들!! 화살표 함수로도 시도해보셔요!
1
191
1
동적으로 html 생성 후 이벤트 위임 질문 있습니다.
0
265
1
rotateY()에서 deg에 따른 차이
0
197
1
코드 작성 순서
0
275
1
이미지가 없는데 첨부파일을 다운 받는 방법이 있나요??
1
394
1
'이벤트 위임 보강 영상'에 있는 예제 html이 안 보입니다
0
265
2
섹션5 자바스크립트 이벤트 다루기 질문
1
243
1
[#전진! 3D 스크롤 11] mousePos 공식 질문 있습니다!
0
423
2
css 는 직접 작성을 해야하는걸까용?
0
325
1
translateZ 에 px 이 아닌 vw 로 값을 주신 이유가 있을가요?
0
359
2
house 부분에도 width , height 부분을 꽉 차게 주신 부분이 제가 이해한게 맞는지 궁금합니다.
0
304
2
left:-400vw 가 아닌 translateZ(100vw); 을 입력하신 이유가 궁금합니다.
0
305
2





