전체 글(235)
-
자바스크립트 this
자바스크립트에서 this 키워드는 함수가 호출될 때 해당 함수의 실행 컨텍스트를 나타내는 특별한 키워드이다.this는 함수가 어떻게 호출되었는지에 따라 다른 값을 가지며, 자바스크립트 코드의 동작을 이해하는 데 매우 중요한 개념이다.this의 다양한 상황별 값전역 컨텍스트 (Global Context):브라우저 환경에서는 window 객체를 가리킨다.Node.js 환경에서는 global 객체(전역 객체)를 가리킨다.엄격 모드 ("use strict")에서는 undefined를 가리킨다.함수 컨텍스트 (Function Context)일반 함수 호출 시엄격 모드에서는 undefined를 가리킨다.비엄격 모드에서는 전역 객체를 가리킨다.메서드 호출 시:메서드를 호출한 객체를 가리킨다.생성자 함수 호출 시:새로..
2025.03.22 -
data-* 속성 및 dataset 속성에 대한 정리
data- 속성 (Data Attribute)HTML 요소에 사용자 정의 데이터를 저장하기 위한 속성입니다.data- 접두사로 시작하며, 브라우저는 이 접두사를 통해 사용자 정의 속성임을 인식합니다.HTML 요소와 데이터를 연결하거나, JavaScript 코드의 복잡성을 줄이는 데 사용됩니다.CSS 속성 선택자를 사용하여 스타일을 적용할 수 있습니다.data-target-id와 같이 하이픈(-)으로 구분된 속성 이름은 JavaScript에서 dataset 속성을 통해 접근할 때 카멜 케이스로 변환됩니다. (예: element.dataset.targetId)dataset 속성HTML 요소의 모든 data-* 속성을 키-값 쌍으로 갖는 DOMStringMap 객체를 반환하는 JavaScript 속성입니다.d..
2025.03.22 -
쿼리 셀렉터(query selector)
쿼리 셀렉터(query selector)는 웹 페이지의 특정 HTML 요소를 선택하는 데 사용되는 도구다.자바스크립트에서 쿼리 셀렉터를 사용하면 CSS 선택자와 유사한 구문을 사용하여 원하는 요소를 쉽게 찾고 조작할 수 있다. 구조참조객체.querySelector() 형식이다. 일반적으로 document.querySelector() 형식으로 사용되지만 참조객체가 꼭 document여야 하는 것은 아니다. 쿼리 셀렉터의 종류1. document.querySelector()제공된 CSS 선택자와 일치하는 문서 내의 첫 번째 요소를 반환한다.선택자와 일치하는 요소가 없으면 null을 반환한다.예시document.querySelector('#myId'): ID가 "myId"인 요소 선택document.query..
2025.03.22 -
이벤트 위임(Event Delegation)
자바스크립트 이벤트 위임(Event Delegation)은 하위 요소들에 각각 이벤트 핸들러를 할당하는 대신, 상위 요소에 하나의 이벤트 핸들러를 할당하여 하위 요소들의 이벤트를 처리하는 방식이다. 예를 들어 매니저와 직원들이 있는 식당이 있다면 기존에는 직원들이 각각 주문을 받고 서빙까지 했다면 이제는 매니저가 주문을 받고 직원들에게 서빙을 지시하는 상황이라고 할 수 있다. 이벤트 위임의 개념상위 요소에서 하위 요소의 이벤트를 처리각 요소에 개별적인 이벤트 핸들러를 할당하는 대신, 상위 요소에 하나의 이벤트 핸들러를 할당하여 하위 요소의 이벤트를 처리한다.이벤트 버블링 활용이벤트 위임은 이벤트 버블링 현상을 이용하여 상위 요소에서 하위 요소의 이벤트를 감지하고 처리한다.2. 이벤트 위임의 작동 방식상위..
2025.03.22 -
메모리 구조
메모리란 무엇인가?메모리는 우리가 흔히 말하는 램 카드 (RAM)의 용량이라고 할 수 있다. 8기가(GB) 렘, 16기가 렘 하는 것들은 해당 렘 카드가 가지는 최대 메모리의 용량이다.작업관리자를 열면 보이는 메모리가 램 카드의 사용량이다.프로그램은 램이라는 임시 기억장치에 프로그램 구동에 필요한 메모리를 할당하는데 자바 스크립트도 마찬가지로 프로그램이다 보니까 메모리에 데이터를 할당하게 된다. 자바 스크립트의 메모리 구조는 대강 다음과 같다. 여기서 낮은 주소와 높은 주소가 정해져있는데 실제로 메모리를 할당할 수 있는 공간이 물리적인 형태로 정해져 있는 것은 아니고 전체 메모리 용량을 가상의 주소로 나눠둔 것이다.예를 들어 1번지와 10번지라고 한다면 1번지가 낮은 주소, 10번지가 높은 주소가 된다...
2025.03.22 -
문자열 선택자
"문자열 선택자"라는 용어는 CSS에서 특정 문자열을 기반으로 요소를 선택하는 다양한 선택자들을 통칭하는 넓은 의미입니다. 말씀하신 "비슷한 이름을 가진 모든 요소를 선택하는 것"은 문자열 선택자의 한 종류인 속성 값의 시작 문자열 선택자에 해당합니다.문자열 선택자의 종류CSS에서 문자열을 기반으로 요소를 선택하는 선택자는 다음과 같이 다양하게 존재합니다.속성 값의 시작 문자열 선택자 ([attribute^="value"]):지정된 속성 값이 특정 문자열로 시작하는 요소를 선택합니다.예시: [class^="slid-item"]속성 값의 끝 문자열 선택자 ([attribute$="value"]):지정된 속성 값이 특정 문자열로 끝나는 요소를 선택합니다.예시: [class$="-last"]속성 값의 부분 문..
2025.03.22 -
이벤트 버블링 (Event Bubbling)과 캡처링 (Event Capturing)
이벤트 버블링은 웹 개발에서 이벤트가 발생하는 방식 중 하나이다. 특정 요소에서 이벤트가 발생했을 때, 그 이벤트가 해당 요소의 상위 요소들로 차례대로 전달되는 현상을 말한다. 마치 물방울이 아래에서 위로 올라가는 모습과 비슷하다고 하여 '버블링(bubbling)'이라는 이름이 붙었다.이벤트 버블링의 작동 방식이벤트 발생: 가장 안쪽 요소에서 이벤트가 발생한다. 예를 들어, 버튼을 클릭하면 버튼 요소에서 클릭 이벤트가 발생한다.이벤트 전파: 발생한 이벤트는 해당 요소의 부모 요소로 전달됩니다. 부모 요소에도 동일한 이벤트에 대한 이벤트 핸들러가 있다면 실행됩니다.핸들러 있음: 핸들러를 실행하고 다음 상위 요소로 이벤트를 전달합니다.들러 없음: 아무런 반응 없이 다음 상위 요소로 이벤트를 전달합니다.상위 ..
2025.03.21 -
이벤트 리스너 예시 문제 풀이
문제:다음 HTML 코드와 JavaScript 코드를 보고, 입력 필드에 텍스트를 입력하고 "확인" 버튼을 클릭했을 때 어떤 일이 발생하는지 설명하고, 코드를 개선할 수 있는 부분을 찾아 설명하세요.HTML 코드: 확인 JavaScript 코드 (script.js):const input = document.getElementById('myInput');const button = document.getElementById('checkButton');const result = document.getElementById('result');button.onclick = function() { const inputValue = input.value; result.textContent = '입력된 값..
2025.03.21 -
마치 미어캣 같은 이벤트 리스너, 이벤트 핸들러
event사건우리가 웹 페이지를 사용할 때 가장 흔하게 사용하는 것은 클릭이다. 스마트폰이라면 터치일 것이다.여기서 이벤트란 클릭같은 행위를 했을 때 발생하는 일을 말한다. 아래 뉴스섹션 처럼 화살표를 클릭하니까 페이지를 이동하거나 섹션 제목을 클릭하니까 섹션 페이지가 변경되거나 하는 것들이 모두 '이벤트'이다. 그리고 이러한 클릭 말고도 페이지를 스크롤한다거나 키보드를 입력한다거나(복사, 붙여넣기), 마우스를 드래그하거나 이미지 위에 올려놓거나 하는 행위도 모두 이벤트가 발생할 수 있다.즉, 이벤트란 특정 행동을 했을 때 발생하는 일, 작동하는 코드 등을 의미한다.물론 사용자가 직접적으로 상호작용을 하지 않을 경우에도 특정 조건을 만족하면 이벤트가 발생할 수도 있다. DOM 이벤트의 종류DOM 이벤트는..
2025.03.21 -
DOM 조작 - 생성, 제거, 변경 : createElement, removeChild, replaceChild
DOM은 HTML의 가계도이며 HTML의 요소, 요소의 속성, 주속 등을 노드라고 한다. 그렇다면 이런 노드들을 제어하는 방법은 무엇일까?바로 DOM 메서드를 사용하는 것이다. DOM 메서드는 다양한 종류가 있지만 그중 createElement, removeChild, replaceChild는 요소를 생성하고, 제거하고, 변경하는데 사용되는 기본적인 메서드이다. 1. createElement()역할: 새로운 HTML 요소를 생성한다.사용법: document.createElement(tagName)tagName: 생성할 HTML 요소의 태그 이름 (예: "div", "p", "span").let newDiv = document.createElement("div");newDiv.textContent = "새..
2025.03.21