Post

Javascript matches, join메서드

Javascript matches, join메서드를 알아보자.

matches()

matches() 메서드는 주어진 선택자에 해당하는 요소가 현재 요소와 일치하는지 여부를 확인한다.

이 메서드는 boolean값으로 반환한다.

1
2
3
const element = document.querySelector('.example-class');
const isMatch = element.matches('.another-class');
console.log(isMatch); // true 또는 false 출력

이 메서드는 주로 CSS스타일링이나 이벤트 위임 등과 함께 사용한다.
예를 들어, 특정 요소가 이벤트를 처리해야 할 때 해당 요소에 대한 이벤트 핸들러를 등록하기 전에
요소가 일치하는지 먼저 확인 할 수 있다.

join()

join() 메서드는 배열의 모든 요소를 하나의 문자열로 결합하여 반환한다.
이 문자열은 구분자로 구분된 요소들의 시퀀스이다.

반환 값은 모든배열 요소를 결합한 문자열이다.

1
2
3
const fruits = ['사과', '바나나', '오렌지'];
const result = fruits.join(', '); // 구분자로 쉼표와 공백 사용
console.log(result); // "사과, 바나나, 오렌지" 출력



개인과제를 통해서 배운 점

matches() 응용코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cardList.addEventListener("click", handleClickCard);

  // 이벤트 위임: 하위요소에서 발생한 이벤트를 상위요소에서 처리하도록 해줍니다.
  function handleClickCard({ target }) {
    // 카드 외 영역 클릭 시 무시
    if (target === cardList) return;

    if (target.matches(".movie-card")) {
      alert(`영화 id: ${target.id}`);
    } else {
      // 카드의 자식 태그 (img, h3, p) 클릭 시 부모의 id로 접근
      alert(`영화 id: ${target.parentNode.id}`);
    }
  }

join() 응용코드

1
2
3
4
5
6
7
8
9
10
11
12
const cardList = document.querySelector("#card-list");
  cardList.innerHTML = movies
    .map(
      (movie) => `
          <li class="movie-card" id=${movie.id}>
              <img src="https://image.tmdb.org/t/p/w500${movie.poster_path}" alt="${movie.title}">
              <h3 class="movie-title">${movie.title}</h3>
              <p>${movie.overview}</p>
              <p>Rating: ${movie.vote_average}</p>
          </li>`
    )
    .join("");

다른 분의 movieSite개인과제 프로젝트 코드를 보고 요소추가를 할 때와 이벤트 위임을 쓸 때
matches와 join 메서드를 응용해서 이런식으로도 할 수 있다는 것을 깨달았다.

This post is licensed under CC BY 4.0 by the author.