반응형

JS 57

#18 자바스크립트 클로저(Closure) 개념

자바스크립트에서 클로저(Closure)는 매우 중요한 개념 중 하나로, 함수와 함수가 선언된 어휘적 환경(Lexical Environment) 사이의 조합을 의미합니다. 클로저는 자바스크립트의 강력한 기능 중 하나로, 주로 함수 내부에서 정의된 변수를 외부에서 접근하거나 유지하고 싶을 때 사용됩니다.이 글에서는 자바스크립트 클로저의 개념을 깊이 있게 설명하고, 실제 사용 예제를 통해 클로저가 어떻게 작동하는지 살펴보겠습니다.클로저란 무엇인가?클로저는 함수가 자신이 선언된 환경(scope)의 변수들을 기억하고, 그 환경에 접근할 수 있게 해주는 기능입니다. 즉, 클로저를 사용하면 함수가 자신이 생성될 때의 환경(스코프)을 "기억"하여, 함수가 생성된 이후에도 그 환경에 접근할 수 있습니다.클로저의 기본 예..

JS/JavaScript 2024.09.03

#17 자바스크립트 프로토타입 상속

자바스크립트는 클래스 기반 언어가 아니라 프로토타입 기반 언어입니다. 이는 객체가 다른 객체로부터 속성과 메서드를 상속받을 수 있다는 의미입니다. 프로토타입 상속은 자바스크립트에서 객체 간에 속성을 공유하고, 코드 재사용성을 높이는 핵심 개념입니다.프로토타입 상속이란?자바스크립트에서 모든 객체는 프로토타입을 가질 수 있으며, 프로토타입은 또 다른 객체입니다. 특정 객체가 다른 객체의 속성과 메서드를 사용할 수 있는 것은 바로 이 프로토타입을 통해서 이루어집니다. 상속받은 객체는 부모 객체의 메서드와 속성을 그대로 사용할 수 있습니다.프로토타입 상속의 기본 예제const animal = { speak() { console.log('Animal sound'); }};const dog ..

JS/JavaScript 2024.08.31

#16 자바스크립트 프로토타입 체인

자바스크립트에서 객체는 프로토타입 기반(prototype-based) 언어의 특성을 가집니다. 이로 인해 객체는 다른 객체를 상속받을 수 있으며, 이를 통해 객체 간에 속성과 메서드를 공유할 수 있습니다. 이러한 객체 상속 구조를 **프로토타입 체인(Prototype Chain)**이라고 부릅니다.프로토타입(Prototype)이란?자바스크립트에서 모든 객체는 __proto__라는 숨겨진 속성을 가집니다. 이 속성은 객체의 프로토타입을 가리키며, 다른 객체로부터 상속받은 속성과 메서드를 정의합니다. 모든 객체는 자신의 프로토타입 객체로부터 속성과 메서드를 상속받습니다.기본 프로토타입 예제const person = { name: 'John', greet() { console.log(`..

JS/JavaScript 2024.08.31

#15 자바스크립트 이벤트

자바스크립트에서 이벤트는 사용자 또는 브라우저가 수행하는 특정 동작을 의미합니다. 예를 들어, 사용자가 버튼을 클릭하거나 페이지가 로드될 때 이벤트가 발생합니다. 이러한 이벤트에 반응하여 특정 작업을 수행할 수 있는 것이 자바스크립트의 강력한 기능 중 하나입니다.이벤트(Event)란?이벤트는 웹 페이지에서 일어나는 모든 일이라고 할 수 있습니다. 예를 들어, 사용자 클릭, 키보드 입력, 마우스 움직임 등이 모두 이벤트입니다. 자바스크립트를 사용하면 이러한 이벤트가 발생했을 때 특정 동작을 수행하도록 코드로 처리할 수 있습니다.기본 이벤트 예제 Click Me 위의 예제에서 button 요소에 click 이벤트 리스너를 추가하여, 사용자가 버튼을 클릭하면 경고 메시지가 표시되도록 했습니다.자주 ..

JS/JavaScript 2024.08.31

#14 자바스크립트 DOM 조작하기

DOM이란 무엇일까요?DOM(Document Object Model)은 HTML, XML 문서를 자바스크립트에서 다룰 수 있도록 객체화한 모델입니다. 웹 페이지의 모든 요소를 객체로 만들어, 자바스크립트를 통해 이러한 객체들을 조작하여 웹 페이지의 내용이나 스타일을 동적으로 변경할 수 있게 해줍니다.왜 DOM을 조작해야 할까요?동적 웹 페이지: 정적인 HTML 페이지를 넘어 사용자의 상호작용에 따라 변화하는 웹 페이지를 만들 수 있습니다.웹 애플리케이션: 복잡한 웹 애플리케이션을 구축하는 기반이 됩니다.사용자 경험 향상: 더욱 매력적이고 인터랙티브한 사용자 경험을 제공할 수 있습니다.DOM 조작 방법1. 요소 선택하기getElementById(): 지정된 id를 가진 요소 하나를 반환합니다.const m..

JS/JavaScript 2024.08.31

#13 자바스크립트 DOM 선택

DOM 선택이란 무엇일까요?DOM(Document Object Model)은 HTML 문서를 객체화하여 자바스크립트로 조작할 수 있도록 만든 모델입니다. DOM 선택이란, 이러한 DOM 트리에서 원하는 요소를 찾아내는 작업을 의미합니다. 선택한 요소의 내용을 변경하거나 스타일을 조작하는 등 다양한 작업을 수행할 수 있습니다.DOM 선택 방법자바스크립트는 다양한 방법으로 DOM 요소를 선택할 수 있도록 제공합니다. 각 방법은 선택하려는 요소의 특징에 따라 적절하게 사용됩니다.1. getElementById()설명: 지정된 ID를 가진 요소 하나만 반환합니다. ID는 문서 내에서 유일해야 합니다.예시:const myElement = document.getElementById('myId');  2. getEl..

JS/JavaScript 2024.08.29

#12 자바스크립트 DOM

DOM이란 무엇일까요?DOM(Document Object Model)은 HTML, XML 문서에 접근하고 조작할 수 있도록 하는 프로그래밍 인터페이스입니다. 쉽게 말해, 웹 페이지를 구성하는 모든 요소들을 자바스크립트를 통해 다룰 수 있게 해주는 객체 모델이라고 생각하면 됩니다. DOM을 통해 우리는 웹 페이지의 내용을 동적으로 변경하고, 사용자와 상호작용하는 다양한 기능을 구현할 수 있습니다.DOM 트리의 구조DOM은 HTML 문서를 트리 구조로 표현합니다. HTML 태그들은 노드(Node)라고 불리는 객체로 표현되며, 이 노드들이 부모-자식 관계를 가지면서 트리를 형성합니다.노드(Node): DOM에서 모든 요소의 기본 단위입니다.요소 노드(Element Node): HTML 태그를 나타냅니다.텍스트..

JS/JavaScript 2024.08.29

#11 자바스크립트 배열 메서드

자바스크립트 배열은 데이터를 효율적으로 관리하는 데 필수적인 자료구조입니다. 이 글에서는 배열을 다루는 데 사용되는 다양한 메서드들을 상세히 설명하고, 예제를 통해 이해를 돕겠습니다.1. 배열 요소 추가 및 삭제push(...items): 배열의 끝에 요소 추가const numbers = [1, 2, 3];numbers.push(4, 5); // [1, 2, 3, 4, 5]  pop(): 배열의 마지막 요소 제거const numbers = [1, 2, 3];numbers.pop(); // [1, 2]  unshift(...items): 배열의 앞에 요소 추가const numbers = [1, 2, 3];numbers.unshift(0); // [0, 1, 2, 3]  shift(): 배열의 첫 번째 요소..

JS/JavaScript 2024.08.29

#10 자바스크립트 배열

자바스크립트 배열이란?자바스크립트 배열은 순서가 있는 값들의 집합입니다. 즉, 여러 개의 값들을 하나의 변수에 담아 관리할 수 있도록 해주는 자료구조입니다. 배열은 0부터 시작하는 인덱스를 통해 각 요소에 접근할 수 있습니다.배열 생성하기// 빈 배열 생성const emptyArray = [];// 요소를 포함한 배열 생성const numbers = [1, 2, 3, 4, 5];const fruits = ['apple', 'banana', 'orange'];const mixedArray = [10, 'hello', true];  배열 요소에 접근하기const numbers = [10, 20, 30];console.log(numbers[0]); // 10console.log(numbers[2]); // 3..

JS/JavaScript 2024.08.29

#9 자바스크립트 깊은 복사와 얕은 복사 : 차이점과 구현 방법

자바스크립트에서 객체를 복사하는 것은 자주 사용되는 기능입니다. 하지만 객체를 복사할 때 두 가지 중요한 개념을 이해해야 합니다: **얕은 복사(Shallow Copy)**와 **깊은 복사(Deep Copy)**입니다. 이 두 개념은 복사된 객체가 원본 객체와 어떻게 연결되어 있는지에 따라 큰 차이가 있습니다.얕은 복사(Shallow Copy)얕은 복사는 객체의 1단계 깊이 속성만을 복사하고, 그 속성들이 객체나 배열 같은 참조형 데이터일 경우, 참조만 복사합니다. 즉, 얕은 복사된 객체의 중첩된 객체들은 원본 객체의 그것과 동일한 메모리 주소를 가리키게 됩니다.얕은 복사 예제const original = { name: 'John', age: 30, address: { cit..

JS/JavaScript 2024.08.29
반응형