10.2. 프로그램언어 자바스크립트(JavaScript)에서의 이벤트 버블링

프로그램언어자바스크립트의 캡처링 발생 과정

프로그램언어 자바스크립트에서 캡처링은 정규표현식에서 일치하는 부분 문자열을 추출하는 과정을 말합니다. 캡처링은 소괄호 ()를 사용하여 정규식 패턴을 그룹화하고 해당 그룹에 일치하는 부분 문자열을 추출할 수 있습니다.

캡처링이 발생하는 과정은 다음과 같습니다:

  1. 정규식에서 소괄호를 사용하여 캡처 그룹을 만듭니다.
  2. 입력 문자열과 정규식을 비교하여 일치하는 부분을 찾습니다.
  3. 캡처 그룹에 일치하는 부분 문자열을 추출합니다.

아래는 캡처링을 사용한 예제 코드입니다:


const text = 'Hello, my email is example@email.com';
const emailRegex = /(\w+)@(\w+)\.com/;
const match = text.match(emailRegex);const username = match[1]; // 캡처 그룹 1: 사용자 이름
const domain = match[2]; // 캡처 그룹 2: 도메인console.log('Username:', username); // 출력: Username: example
console.log('Domain:', domain); // 출력: Domain: email

프로그램언어자바스크립트의 캡처링 과 버블링의 차이

자바스크립트에서 이벤트가 발생했을 때, 이벤트가 DOM 요소들을 통해 전파되는 방식에는 캡처링과 버블링이 있습니다.

캡처링은 이벤트가 가장 먼 조상 요소에서 시작되어 실제 대상 요소까지 이벤트가 전파되는 방식입니다. 즉, 이벤트가 상위 요소에서 하위 요소로 향하는 과정을 말합니다. 반면에 버블링은 이벤트가 대상 요소에서 시작하여 상위 요소로 전파되는 방식입니다. 즉, 이벤트가 하위 요소에서 상위 요소로 향하는 과정을 말합니다.

이를 이해하기 위해 예제 코드를 살펴보겠습니다.





  캡처링 vs 버블링


  

위의 코드에서는 세 개의 요소인 outer, middle, inner가 중첩되어 있습니다. 각 요소에 대해 클릭 이벤트를 캡처링과 버블링 단계에서 처리하는 리스너를 등록했습니다. 클릭 이벤트가 발생하면 각 요소에서 해당 이벤트가 어떻게 전파되는지 콘솔에 출력됩니다.

프로그램언어자바스크립트의 캡처링을 이용한 이벤트 리스너

프로그램 언어 자바스크립트의 캡처링을 이용한 이벤트 리스너는 이벤트 버블링과 캡처링을 이용하여 이벤트를 처리하는 방법입니다. 이벤트 캡처링은 이벤트가 하위 요소에서 상위 요소로 전파되는 방식으로 동작하며, 이벤트가 발생한 요소의 상위 요소부터 이벤트를 처리합니다.

캡처링을 이용한 이벤트 리스너를 등록할 때는 addEventListener 메서드의 세 번째 매개변수에 true를 전달하여 캡처링 단계에서 이벤트를 처리하도록 설정합니다.


// 예제 코드
const parent = document.getElementById('parent');
const child = document.getElementById('child');parent.addEventListener('click', function() {
  console.log('부모 요소 클릭됨');
}, true);child.addEventListener('click', function() {
  console.log('자식 요소 클릭됨');
}, true);

프로그램언어자바스크립트의 캡처링 중단

프로그램 언어 자바스크립트에서의 캡처링 중단은 정규 표현식에서 사용되는 중요한 개념 중 하나입니다. 캡처링은 정규 표현식에서 일치하는 부분을 추출하거나 그룹화하는 기능을 말합니다. 그러나 때때로 우리는 특정 부분을 캡처링하고 싶지 않을 때가 있습니다. 이때 캡처링 중단을 사용하여 원치 않는 부분을 제외하고 일치시킬 수 있습니다.

캡처링 중단은 정규 표현식에서 사용되는 특수한 구문으로, 일치시키지 않을 부분을 지정하는 역할을 합니다. 캡처링 중단은 (?!pattern) 형식으로 사용되며, pattern 부분과 일치하지 않는 경우에만 일치하게 됩니다.

아래는 캡처링 중단을 사용한 예제 코드입니다.


const text = "Hello, 12345";
const regex = /\d+(?![0-9])/;const result = text.match(regex);
console.log(result); // Output: ["12345"]

프로그램언어자바스크립트의 캡처링과 이벤트 타겟

프로그래밍 언어 자바스크립트에서 캡처링(capturing)과 이벤트 타겟(event target)은 이벤트 처리에 중요한 개념입니다.

캡처링은 이벤트가 실제 대상 요소에 도달하기 전에 상위 요소부터 시작하여 이벤트를 캡처하는 단계를 말합니다. 이벤트가 DOM 트리를 따라 올라가는 과정이라고 이해할 수 있습니다. 이에 반해 이벤트 타겟은 실제 이벤트가 발생한 요소를 가리킵니다.

예를 들어, 아래와 같은 HTML 구조가 있다고 가정해봅시다.


<div id="parent">
  <button id="child">Click Me</button>
</div>

만약 버튼을 클릭할 때 발생하는 클릭 이벤트를 캡처링과 이벤트 타겟을 이용해 처리한다면, 캡처링 단계에서는 부모 요소인 `div`부터 시작하여 이벤트를 캡처하고, 이벤트 타겟은 실제 클릭된 버튼 요소인 `button`이 됩니다.

이를 코드로 나타내면 다음과 같습니다.


document.getElementById('parent').addEventListener('click', function(event) {
  console.log('Capturing Phase: Parent Element');
}, true);document.getElementById('child').addEventListener('click', function(event) {
  console.log('Event Target: Child Element');
});

Leave a Comment