function(일명 함수)라는 문법이 있는데
함수는 길고 더러운 코드를 한 단어로 축약하고 싶을 때 쓰는 문법이다.
특정 기능을 다음에도 쓰기 위해 모듈화해놓는 문법이라고 생각하면 된다.




이렇게 작성하면 id가 어쩌구인 요소를 '클릭'하면 안의 코드를 실행해주세요라는 뜻이된다.
이걸 사용하면 버튼에 onclick 넣을 필요가 없어진다.
- event란?
유저가 웹페이지 접속해서 클릭, 스크롤, 키보드입력, 드래그 등을 할 수 있는데
이걸 전문용어로 이벤트라고 부른다
어떤 요소 클릭시에 click 이벤트
마우스 갖다대면 mouseover 이벤트
스크롤하면 scroll 이벤트
키입력하면 keydown 이벤트
...등 몇십가지가 있다.
class명을 원하는 요소에 추가하는 법은
셀렉터로찾은요소.classList.add('클래스명') 이렇게 쓰면 된다.
class명을 원하는 요소에서 제거하는 법은
셀렉터로찾은요소.classList.remove('클래스명') 이렇게 쓰면 된다.
document.getElementsByclassName('어쩌구')[0].addEventListener('click',function(){
document.getElementsByclassName('저쩌구')[0].classList.add('클래스추가');
}
);
👆 class='어쩌구' 가진 요소 클릭하면
class='저쩌구'인 요소에 '추가해줘' 라는 클래스명을 추가하라는 코드이다.
if문, 변수문법으로도 가능하지만 토글로 쉽게 구현할 수 있다.
.classList.toggle()
위의 코드를 이용하면
-클래스명이있으면 제거하고
-클래스명이 없으면 붙여준다.
그래서 왔다갔다 하는 ui 만들 때 유용하게 쓰일 수 있다.
getElementById()
getElementByClassName()
말고도 다른 방식으로 html 요소를 찾아주는 셀렉터가 있다.
queryselector 이다.
querySelector() 안에는 css 셀렉터 문법을 사용가능하다
(css에서 마침표는 class라는 뜻이고 #은 id라는 뜻임)
다만 querySelector() 는 맨 위의 한개 요소만 선택해줍니다.
👆 그래서 위처럼 test1이라는 클래스가 중복으로 여러개 있는데
X번째 요소를 선택하고 싶은경우에는 querySelectorAll()[x] 이렇게 사용해주면 된다.
조건부로 코드를 실행하고 싶으면 if문을 쓰면 된다.
조건식이 참일 때 중괄호 안에 있는 코드를 실행시켜 준다.
같다고 비교하고 싶으면 ==
크거나 작은지 비교하고 싶으면 >, <
크거나 같다, 작거나 같다는 >=, <=
다른지 비교하고 싶으면 !=
같다고 비교하려면 == 쓰면 된다고했는데 실은 === 이것도 있음
== 이건 느슨한 비교
=== 이건 엄격한 비교
== 느슨한 비교는 자료의 타입변환을 지가 알아서 해보고 동일하면 true라고 판정해주고
=== 엄격한 비교는 자료의 타입까지 동일해야 true라고 판정해준다.
간단한 알림팝엄 띄우고 싶으면 alert('안녕')쓰면 된다.

if문 뒤에 몇번이고 원하는 만큼 붙일 수 있다.
else if 뜻은 "그게아니면 만약에" 라는 뜻이다.
그래서 1 == 3 비교해보고 그게 아니면 3 == 3 비교해보고 이게 참이면 맞아요2를 출력해준다.
- if문만 2개 있으면
위에있는 if문이 참이든 아니든 둘째 if문도 항상 실행된다.- if+else가 있으면
else 덕분에 위의 조건식이 참이면 else 뒤는 스킵한다.
그래서 조건식을 여러번 검사하는데 중간에 참이 나올 경우
코드실행을 중단하고 싶으면 else if 쓰면 된다.
if 조건문 자리에는 == 등호 이런게 아니라 true, false를 넣어야 잘 작동한다.
진짜로 true 넣으면 if문이 실행 잘된다
true는 참, false는 거짓을 뜻하는 자료형입니다.
개발자말로 boolean 타입이라고 부른다
이런 것들은 if문 소괄호 안에서 false랑 같은 역할을 한다
이런 것들은 if문 소괄호 안에서 true랑 같은 역할을 한다
if문 소괄호 안에 조건식을 여러개 동시에 입력하고 싶다면 and/or 기호와 함께 적으면 된다.
&& 기호는 논리학의 and 역할을 해준다
왼쪽 오른쪽이 둘 다 true면 전체를 true로 바꿔준다.
|| 기호는 논리학의 or 역할을 해준다
왼쪽 오른쪽 둘 중 true가 적어도 1개 있으면 전체를 true로 남겨준다.
var 변수명 = 넣을값;
- 문자, 숫자 말고도 거의 모든걸 다 집어넣을 수 있다.
document.getElementById() 이것도 변수에 넣어쓰기 가능
-영어로 작명시엔 함수 작명하듯 camelCase로 하면 된다.
기존 값에 +1 하고 싶으면
변수명++
변수 += 1
변수 = 변수 + 1
셋 중 하나 골라쓰면 된다.
변수쓸 땐 선언과 할당이라는 용어가 있는데
변수만드는걸 선언
변수에 뭐 집어넣는걸 할당이라고 한다.
위의 두줄은 선언,
밑의 두줄은 할당이라고한다.

변수는 사용가능한 범위가 있는데,
삼수 안에서 변수를 만들었을 경우 함수 안에서만 사용이가능하다.
var 대신 let, const 문법 써도 똑같이 변수생성이 가능하지만 차이점이있다.
let, const
값을 수정하면 큰일나는 변수들을 만들고싶을때 유용합니다.
나중에 값을 변경하는 실수를 방지하고 싶을 때 쓰면된다.
유익한 글이었습니다.