element.classList
<style>
    .bold {
        font-weight: 600;
    }
    .bg-red {
        background-color: red;
    }
</style>
<p class="bold">버튼을 클릭하면 "bg-red" 클래스 값이 추가됩니다.</p>
<button type="button">요소에 클래스 값 추가하기</button>
const elem = document.querySelector("p");
const button = document.querySelector("button");

button.addEventListener("click", () => { // 버튼 클릭 이벤트
    // "bg-red" 클래스 값 추가하기
    elem.classList.add("bg-red");
});
실제 적용된 모습 "요소에 클래스 값 추가하기" 버튼을 클릭해 보세요!
<style>
    .bold {
        font-weight: 600;
    }
    .bg-red {
        background-color: red;
    }
</style>
<p class="bold bg-red">버튼을 클릭하면 "bg-red" 클래스 값이 제거됩니다.</p>
<button type="button">요소에서 클래스 값 제거하기</button>
const elem = document.querySelector("p");
const button = document.querySelector("button");

button.addEventListener("click", () => { // 버튼 클릭 이벤트
    // "bg-red" 클래스 값 제거하기
    elem.classList.remove("bg-red");
});
실제 적용된 모습 "요소에서 클래스 값 제거하기" 버튼을 클릭해 보세요!
<video src="video.mp4" class="a b c"></video>
const myVideo = document.querySelector("video");

console.log(myVideo.classList.contains("a")); // true
console.log(myVideo.classList.contains("b")); // true
console.log(myVideo.classList.contains("d")); // false
<style>
    .bold {
        font-weight: 600;
    }
    .bg-red {
        background-color: red;
    }
</style>
<p class="bold">배경색이 추가되거나 제거됩니다.</p>
<button type="button">배경색 추가하기/제거하기</button>
const elem = document.querySelector("p");
const button = document.querySelector("button");

button.addEventListener("click", () => { // 버튼 클릭 이벤트
    // "bg-red" 클래스 값이 있으면 추가, 없으면 제거하기
    elem.classList.toggle("bg-red");
});
실제 적용된 모습 "배경색 추가하기/제거하기" 버튼을 클릭해 보세요!
<div class="one two three">이것은 div입니다.</div>
const elem = document.querySelector("div");
const classCount = elem.classList.length;

console.log("클래스 수: " + classCount);
// "클래스 수: 3"
<div class="one two three">이것은 div입니다.</div>
const elem = document.querySelector("div");
const classValue = elem.classList.value;

console.log(classValue);
// "one two three"
classList 객체의 브라우저 호환성
속성
데스크탑 Chrome
Chrome
데스크탑데스크탑 Edge
Edge
데스크탑 Firefox
Firefox
Safari
Safari
classList 22 16 3.6 7
add() 24 12 26 7
remove() 24 12 26 7
contains() 8 12 3.6 5.1
toggle() 24 12 24 7
length 8 12 3.6 5.1
value 50 17 47 10

caniuse.com에서 더 자세한 정보를 확인해 보세요.