-일반적으로 html과 css는 단순히 처음 한번 웹 페이지에 모습을 드러내고 나면 그 이후에는 특별히 어떤 변화를 주는 것이 어렵다는 한계가 있음
document.getElementById('id_이름'): id 속성을 가지고 태그를 선택할 수 있음undefined가 아닌 null 값이 리턴 됨

document.getElementsByClassName('class_이름'): class 속성을 가지고 여러 태그를 한번에 선택할 수 있음
HTMLCollection 유사배열이 출력 됨
length 프로퍼티, for...of 문을 사용할 수 있음
요소들의 순서는 html 태그에서 봣을 때 깊이와는 상관 없이 무조건 위에서부터 차례대로 임
클래스가 하나 밖에 없는 요소를 선택하더라도 요소가 한 개 있는HTMLCollection이 출력 됨
존재하지 않는 클래스 값을 찾게 되면 null 값이 아닌 빈 HTMLCollection이 출력 됨
const myTags3 = document.getElementsByClassName('white'); // white는 없는 class임
console.log(myTags3); // HTMLCollection(0)
console.log(myTags3 === null); // false
console.log(myTags3.length); // 0
length 프로퍼티가 있어야 함 Array 객체의 isArray 메소드는 파라미터로 전달한 값이 배열인지 아닌지를 평가해서 그 결과를 불린 형태의 값으로 리턴해주는 메소드 임false 임document.getElementsByTagName('tag_이름'): 태그 이름으로 태그를 선택할 수 있음HTMLCollection을 리턴함* 값을 전달하게 되면 모든 태그를 선택할 수도 있음document.querySelector('css선택자'): css 선택자로 html 태그를 유연하게 선택할 수 있음null값을 리턴함const myTag = document.querySelector('#myNumber');
console.log(myTag);

document.querySelectorAll('css선택자'): 여러개의 선택자를 선택할 때NodeList라는 유사 배열이 선택됨const myTags1 = document.querySelectorAll('.color-btn');
console.log(myTags1);

getElement방식과 querySelector방식 중 메소드 이름이 짧고 하나의 메소드로 유연하게 태그 선택이 가능하다는 점에서 querySelector사용을 추천함// 이벤트(Event)와 버튼 클릭
const btn = document.querySelector('#grade');
// 이벤트 핸들링(Event Handling)
btn.onclick = function() { // 이벤트 핸들러(Event Handler)
alert('정답입니다!👏');
};
<button id="myBtn" onclick="console.log('Hello Codeit!')">클릭!</button>
