본문 바로가기
반응형
SMALL

전체 글125

textConent와 InnerText textContent와 innerText는 모두 DOM에서 요소의 내용을 가져오거나 설정하는 속성입니다. 그러나 이들 사이에는 중요한 차이점이 있으며, 사용 사례에 따라 적절한 속성을 선택하는 것이 중요합니다. textContent 정의: textContent 속성은 요소와 그 자손의 텍스트 내용을 가져오거나 설정합니다. 이 때, HTML 태그를 무시하고 텍스트만을 다룹니다. 특징: textContent는 숨겨진 요소(예: display: none이 적용된 요소)의 텍스트도 포함합니다. 스크립트와 스타일 요소 내의 텍스트도 포함합니다. HTML 엔티티(예: < 또는 &)는 실제 문자로 해석되지 않고 원시 텍스트 그대로 반환됩니다. 사용 사례: DOM에서 순수 텍스트 데이터를 작업할 때 선호됩니다. tex.. 2024. 2. 21.
DOM 과 CSSOM DOM(Document Object Model)과 CSSOM(Cascading Style Sheets Object Model)은 웹 브라우저가 웹 페이지를 어떻게 해석하고 렌더링하는지에 대한 핵심적인 부분입니다. 이 두 모델은 웹 페이지의 구조와 스타일을 브라우저가 이해하고 사용자에게 시각적으로 표현할 수 있게 하는 방식을 정의합니다. DOM (Document Object Model) 정의: DOM은 HTML 문서의 구조적 표현입니다. 웹 페이지의 모든 콘텐츠와 요소를 트리 구조로 나타내며, 각 노드는 HTML 문서 내의 태그, 속성, 텍스트 등을 나타냅니다. 용도: DOM은 JavaScript를 통해 동적으로 웹 페이지의 내용, 구조, 스타일을 변경할 수 있게 해줍니다. 예를 들어, DOM API를 사.. 2024. 2. 21.
Map JavaScript의 Map 객체는 키-값 쌍을 저장하는 순서가 있는 데이터 구조입니다. **Map**은 객체와 유사하지만, 몇 가지 중요한 차이점이 있습니다. 가장 두드러진 차이는 **Map**이 어떤 값(원시 값 또는 객체 참조)도 키로 사용할 수 있다는 점입니다. 또한, **Map**은 요소의 순서를 유지하며, size 속성을 통해 쉽게 크기를 알 수 있습니다. Map의 기본적인 사용법 let map = new Map(); // 키-값 쌍 추가 map.set('key1', 'value1'); map.set('key2', 'value2'); // 키를 사용하여 값 접근 console.log(map.get('key1')); // "value1" console.log(map.get('key2')); //.. 2024. 2. 21.
Set JavaScript의 Set 객체는 중복을 허용하지 않는 값을 저장하기 위한 컬렉션입니다. **Set**을 사용하면 어떤 값이든, 원시 값이든 객체 참조이든 상관없이 유일한 값들의 집합을 생성할 수 있습니다. 이는 배열과 유사하지만, 주요 차이점은 Set 내의 모든 값이 유니크해야 한다는 것입니다. Set의 기본적인 사용법 let mySet = new Set(); // 값 추가 mySet.add(1); mySet.add(5); mySet.add("some text"); let o = {a: 1, b: 2}; mySet.add(o); // Set: {1, 5, "some text", Object {a: 1, b: 2}} // 중복 값 추가 시도 (추가되지 않음) mySet.add(1); // Set에는 이.. 2024. 2. 21.
구조 분해 할당 (Destructuring assignment) 디스트럭처링 할당(Destructuring assignment)은 배열이나 객체의 속성을 해체하여, 그 값을 개별 변수에 담을 수 있게 하는 JavaScript 표현식입니다. 이 기능을 통해 필요한 데이터만을 선택적으로 추출하거나, 함수에서 객체나 배열을 인자로 받을 때 바로 변수로 할당하는 등 코드를 더욱 간결하고 가독성 있게 만들 수 있습니다. 배열 디스트럭처링 배열 디스트럭처링은 배열의 각 요소를 변수에 할당할 수 있게 해줍니다. const numbers = [1, 2, 3, 4, 5]; const [first, second, , , fifth] = numbers; console.log(first); // 1 console.log(second); // 2 console.log(fifth); // 5.. 2024. 2. 21.
스프레드 문법과 Rest 파라미터 스프레드 문법(Spread syntax)은 JavaScript에서 배열이나 객체 리터럴을 확장하여 여러 요소로 분해하거나 여러 속성으로 분해하는 데 사용됩니다. 이 문법은 ... 세 개의 점으로 표현됩니다. 스프레드 문법은 함수 호출, 배열 리터럴, 객체 리터럴에서 유용하게 사용될 수 있습니다. 함수 호출에서의 스프레드 문법 함수의 인자를 배열로 받고 있을 때, 스프레드 문법을 사용하여 배열의 각 요소를 개별 인자로 전달할 수 있습니다. function sum(x, y, z) { return x + y + z; } const numbers = [1, 2, 3]; console.log(sum(...numbers)); // 6 배열 리터럴에서의 스프레드 문법 배열을 합치거나 복사할 때 스프레드 문법을 사용하.. 2024. 2. 21.
이터레이션 프로토콜 이터레이션 프로토콜은 자바스크립트에서 컬렉션(예: 배열, 문자열, 맵, 세트 등)의 요소를 순회하는 방법을 정의하는 규약입니다. 이 프로토콜은 Iterable 프로토콜과 Iterator 프로토콜로 구성되어 있습니다. Iterable 프로토콜 Iterable 프로토콜을 구현하는 객체는 for...of 루프와 같은 이터레이션 구문에서 사용될 수 있습니다. 이러한 객체는 Symbol.iterator 메서드를 구현해야 하며, 이 메서드는 **Iterator**를 반환해야 합니다. let iterable = { [Symbol.iterator]() { let step = 0; return { next() { step++; if (step === 1) { return { value: 'Hello', done: fal.. 2024. 2. 21.
심볼(Symbol) 자바스크립트에서 심볼(Symbol)은 ES6에서 도입된 원시 데이터 타입(primitive data type) 중 하나입니다. 심볼은 고유하고 수정 불가능한 값으로 주로 객체 속성의 키(key)로 사용됩니다. 심볼을 사용하는 주된 이유는 충돌 없는 속성명을 보장하기 위함입니다. 즉, 심볼 값을 사용하면 동일한 이름의 다른 속성과 충돌하지 않으므로, 객체 내부의 속성이나 메소드를 안전하게 숨기거나, 객체에 메타데이터를 추가하는 등의 작업에 유용합니다. 심볼의 기본 사용법 심볼은 Symbol() 함수를 호출하여 생성할 수 있습니다. 각 심볼은 고유하므로, 동일한 설명 문자열을 사용하여 두 심볼을 생성하더라도 두 심볼은 서로 다릅니다. let symbol1 = Symbol(); let symbol2 = Sym.. 2024. 2. 21.
String 객체 자바스크립트의 String 객체는 텍스트 데이터를 나타내는 데 사용되며, 다양한 메서드를 통해 문자열을 조작할 수 있습니다. 여기에는 문자열의 생성, 검색, 변환, 분할 등을 위한 메서드가 포함됩니다. 다음은 자바스크립트에서 String 객체와 관련된 몇 가지 기본적인 예제입니다: 문자열 생성 자바스크립트에서 문자열을 생성하는 방법은 여러 가지가 있습니다. 가장 간단한 방법은 작은따옴표('), 큰따옴표("), 또는 백틱(``` `)을 사용하는 것입니다. let str1 = 'Hello, world!'; let str2 = "Hello, world!"; let str3 = `Hello, world!`; 문자열 길이 문자열의 길이를 구하려면 length 속성을 사용합니다. let str = 'Hello, w.. 2024. 2. 21.
정규 표현식(Regular Expression) 정규 표현식(Regular Expression)은 문자열에서 특정 문자 조합을 찾기 위해 사용되는 패턴입니다. 자바스크립트와 같은 많은 프로그래밍 언어에서 문자열 처리에 매우 유용하게 사용됩니다. 정규 표현식을 사용하면 복잡한 검색, 대체, 추출 작업을 간단하게 수행할 수 있습니다. 기본 구문 /pattern/flags: 정규 표현식은 슬래시(/)로 시작하고 끝나며, 선택적인 플래그를 사용할 수 있습니다. g: 전역 검색 (문자열 내의 모든 패턴 매칭) i: 대소문자 구분 없이 매칭 m: 여러 줄 매칭 주요 메타 문자 .: 임의의 한 문자와 일치 ^: 문자열의 시작 $: 문자열의 끝 *: 0회 이상 반복 +: 1회 이상 반복 ?: 0회 또는 1회 \\s: 공백 문자 \\S: 공백이 아닌 문자 \\d: 숫.. 2024. 2. 21.
Number 와 Math 자바스크립트에서 Number 객체와 Math 객체는 숫자와 수학 연산을 다루는 데 사용됩니다. 두 객체 모두 유용한 프로퍼티와 메서드를 제공하여 수학적 계산을 쉽게 할 수 있게 도와줍니다. Number 객체 Number 객체는 원시 숫자 값을 래핑하기 위한 객체입니다. 숫자와 관련된 일반적인 작업을 위한 속성과 메서드를 제공합니다. 주요 프로퍼티와 메서드 Number.MAX_VALUE: JavaScript에서 표현할 수 있는 가장 큰 수 Number.MIN_VALUE: 0보다 크면서 JavaScript에서 표현할 수 있는 가장 작은 수 Number.NaN: "Not-a-Number" 값을 나타냄 Number.isFinite(number): 인수가 유한한 숫자인지 판별 Number.isInteger(num.. 2024. 2. 21.
연결 리스트에서 노드(Node)란? 연결 리스트에서 노드(Node)는 리스트의 기본 단위로, 데이터와 다음 노드에 대한 참조(포인터)를 포함하는 객체나 구조체입니다. 연결 리스트는 이러한 노드들이 서로 연결되어 있는 구조로, 각 노드는 다음 노드를 가리키는 방식으로 연결됩니다. 연결 리스트의 각 요소를 노드라고 부르며, 각 노드는 최소 두 부분으로 구성됩니다: 데이터(Data): 노드가 저장하고 있는 실제 값이나 정보입니다. 이 데이터는 정수, 문자열, 또는 복잡한 객체와 같은 어떤 타입도 될 수 있습니다. 참조(Next Pointer): 다음 노드를 가리키는 포인터나 참조입니다. 이를 통해 연결 리스트의 다음 요소와 연결됩니다. 마지막 노드의 경우, 이 포인터는 일반적으로 null이나 리스트의 끝을 나타내는 특별한 값을 가집니다. 연결 .. 2024. 2. 16.
배열의 고차함수 자바스크립트에서 배열의 고차 함수(Higher-Order Functions)는 배열을 다루는데 있어 매우 강력한 도구입니다. 고차 함수는 다른 함수를 인자로 받거나 함수를 결과로 반환하는 함수를 말합니다. 배열과 관련해서는 주로 배열의 각 요소를 순회하며, 특정 작업을 수행하는 데 사용됩니다. 여기에는 map, filter, reduce, forEach, find, every, some 등이 포함됩니다. 1. map() 배열의 각 요소에 대해 주어진 함수를 호출한 결과를 모아 새 배열을 반환합니다. 예: 각 요소를 제곱하는 경우 const numbers = [1, 2, 3, 4]; const squared = numbers.map(x => x * x); // squared: [1, 4, 9, 16] 2... 2024. 2. 10.
숫자와 리터럴 자바스크립트에서의 2147483647 + 1 자바스크립트에서 숫자는 IEEE 754 표준을 따르는 부동 소수점 형식으로 표현되며, 모든 숫자는 배정밀도(double precision) 64비트 형식으로 저장됩니다. 이러한 표현 방식은 정수와 부동 소수점 수 모두를 포괄하며, 큰 정수 값도 정밀하게 표현할 수 있습니다. 따라서 자바스크립트에서 2147483647 (2^31 - 1, int 타입의 최대값)에 1을 더하면 정확히 **2147483648**이 됩니다. 2147483647 + 1; // 2147483648 자바에서의 2147483647 + 1 자바에서는 숫자 타입이 고정 너비를 가집니다. int 타입은 32비트 정수를 저장하며, 이는 -2^31부터 2^31 - 1까지의 범위를 가집니다. 따라서 *.. 2024. 2. 10.
자바스크립트에서의 0 더글라스 크락포드는 자바스크립트가 갖는 강력한 기능과 유연성, 그리고 이를 통해 개발자가 효율적이고 표현력 있는 코드를 작성할 수 있는 방법을 강조합니다. 자바스크립트가 다른 언어와 비교했을 때 독특하게 갖는 특성 자바스크립트에는 0으로 표시되지만 0이 아닌 값이 있습니다. IEEE 754 표준은 부동 소수점 산술에 대한 국제 표준입니다. 이 표준은 컴퓨터에서 실수를 표현하고 연산하는 방법을 정의합니다. IEEE 754 표준에서는 0과 -0을 구분합니다. 이는 부동 소수점 수의 표현 방식 때문입니다. 부동 소수점 수는 일반적으로 3개의 부분으로 나뉩니다: 부호(sign), 지수(exponent), 가수(mantissa 또는 fraction)입니다. 부호 부분은 1비트로, 수가 양수인지 음수인지를 결정합니.. 2024. 2. 10.
연결리스트의 시간복잡도 class LinkedList { length = 0; head = null; add(value) { if (this.head) { //head에 값이 있을때 let current = this.head; while (current.next) { //다음이 없을때까지 계속 반복(다음이 없다는건 값이 비어있다는 것) current = current.next; } current.next = new Node(value); //current.next가 없을때 넣어준다 } else { //head에 값이 없을때 this.head = new Node(value); //그냥 해당 값을 추가하면된다 } this.length++; //값이 들어갔으니깐 길이가 하나 길어진다 return this.length; //lengt.. 2024. 2. 9.
연결 리스트(Linked List) 연결 리스트(Linked List)는 데이터 항목들이 노드(Node)라는 요소에 저장되며, 각 노드가 다음 노드를 가리키는 포인터(Pointer) 또는 참조(Reference)를 통해 서로 연결되어 있는 선형 데이터 구조입니다. 연결 리스트는 배열과 비교했을 때, 동적 크기 조정이 용이하고, 삽입과 삭제 연산이 더 효율적일 수 있습니다. 다만, 임의 접근(Random Access)이 불가능하여 특정 인덱스의 요소에 접근하기 위해서는 처음부터 해당 요소까지 순회해야 합니다. 연결 리스트에는 주로 다음과 같은 종류가 있습니다: 단일 연결 리스트(Singly Linked List): 각 노드가 다음 노드만을 가리키는 포인터를 가지고 있습니다. 따라서 리스트를 한 방향으로만 순회할 수 있습니다. 이중 연결 리스.. 2024. 2. 9.
클래스(Class) 자바스크립트의 클래스(Class)는 ES6(ECMAScript 2015)에서 도입된, 객체 지향 프로그래밍을 보다 쉽게 구현할 수 있게 해주는 구문입니다. 클래스는 사실상 프로토타입 기반 상속을 사용하는 기존 자바스크립트의 상속 메커니즘을 더 명확하고 간결하게 작성할 수 있게 해주는 "문법적 설탕(syntactic sugar)"입니다. 이는 개발자가 클래스 기반 언어에서 익숙한 방식으로 자바스크립트에서도 클래스를 정의하고 상속받을 수 있게 합니다. 클래스의 기본 구조 자바스크립트에서 클래스는 class 키워드를 사용하여 정의됩니다. 클래스 내부에는 생성자(constructor)와 메소드를 정의할 수 있습니다. 생성자는 새로운 인스턴스가 생성될 때 호출되며, 인스턴스 초기화에 사용됩니다. 메소드는 클래스의.. 2024. 2. 9.
렉시컬스코프와 클로저의 차이점 렉시컬 스코프(Lexical Scope)와 클로저(Closure)는 프로그래밍 언어에서 변수의 범위(scope)와 접근성을 결정하는 중요한 개념입니다. 두 개념은 서로 밀접하게 관련되어 있으나, 명확한 차이가 있습니다. 렉시컬 스코프(Lexical Scope) 정의: 렉시컬 스코프(또는 정적 스코프)는 변수가 코드를 작성하는 시점에 결정되는 변수의 범위를 말합니다. 즉, 변수가 함수 내부에서 정의되었다면, 그 함수 내부에서만 접근할 수 있으며, 중첩된 함수의 경우 내부 함수에서는 외부 함수의 변수에 접근할 수 있지만, 외부 함수에서는 내부 함수의 변수에 접근할 수 없습니다. 특징: 함수의 실행 컨텍스트가 아니라, 함수가 작성된 위치에 따라 변수의 접근성이 결정됩니다. 클로저(Closure) 정의: 클로저.. 2024. 2. 9.
모노레포(Monorepo) 환경 모노레포(Monorepo) 환경은 여러 프로젝트의 코드를 하나의 저장소(repo)에서 관리하는 구조를 의미합니다. 이 접근 방식은 대규모 프로젝트나 여러 서브 프로젝트를 포함하는 시스템에서 특히 유용합니다. 모노레포는 프로젝트의 조직, 협업, 그리고 버전 관리를 간소화하는 데 도움을 줍니다. 모노레포의 주요 이점 통합된 소스 코드 관리: 모든 프로젝트와 라이브러리가 한 곳에 있어서, 변경 사항이 여러 프로젝트에 걸쳐 있을 때 그것들을 쉽게 동기화하고 관리할 수 있습니다. 의존성 관리의 간소화: 프로젝트 간의 의존성을 쉽게 관리할 수 있으며, 변경 사항이 하나의 프로젝트에 의해 필요할 때 다른 프로젝트를 쉽게 업데이트할 수 있습니다. 효율적인 코드 재사용: 공통 코드를 라이브러리나 유틸리티로 쉽게 분리하고.. 2024. 2. 7.
실행 컨텍스트 ECMAScript 의 소스코드 4가지 타입 ECMAScript는 자바스크립트의 표준을 정의하는 사양입니다. ECMAScript 사양에서는 소스 코드를 네 가지 주요 타입으로 분류합니다. 이러한 분류는 소스 코드가 어떻게 실행되고 평가되는지에 대한 규칙을 정의합니다. 이 네 가지 타입은 다음과 같습니다: 1. Global Code (전역 코드) 전역 코드는 함수나 클래스와 같은 어떠한 실행 가능한 코드 블록에도 둘러싸이지 않은 코드를 의미합니다. 이 코드는 전역 스코프에서 실행됩니다. 전역 변수나 함수 정의 등을 포함할 수 있으며, 스크립트가 로드될 때 바로 실행됩니다. var a = 20; // 전역 변수 function foo() { // 이 함수는 전역 컨텍스트에 정의됨 } foo(); // 전역 컨텍스트에서 foo 함수 호출 2. Funct.. 2024. 2. 2.
생성자함수 this 자바스크립트에서 생성자 함수는 객체를 생성하기 위해 사용되는 특별한 함수입니다. 생성자 함수에서 this 키워드는 생성될 새로운 객체를 가리킵니다. 이를 통해 생성자 함수 내에서 객체의 속성과 메서드를 정의할 수 있습니다. 생성자 함수의 작동 원리 새 객체 생성: new 연산자와 함께 생성자 함수를 호출하면 자바스크립트 엔진은 먼저 새로운 빈 객체를 만듭니다. this에 바인딩: 생성된 빈 객체는 생성자 함수의 **this**에 바인딩됩니다. 이로 인해 생성자 함수 내부에서 **this**를 사용하면 새로 만들어진 객체를 가리키게 됩니다. 속성 및 메서드 추가: 생성자 함수 내에서 **this**를 사용해 새 객체에 속성과 메서드를 추가합니다. 객체 반환: 생성자 함수의 실행이 끝나면 **this**에 .. 2024. 2. 2.
전역객체 자바스크립트에서 전역 객체는 코드가 실행되는 환경에 따라 다르게 정의되는 객체입니다. 전역 객체는 모든 전역 변수와 함수를 포함하며, 스크립트가 실행되는 전체 환경을 나타냅니다. 다양한 환경(브라우저, Node.js 등)에서 다른 전역 객체가 사용됩니다. 브라우저 환경에서의 전역 객체: window 브라우저에서는 **window**가 전역 객체입니다. window 객체는 브라우저 창을 나타내며, DOM 요소를 조작하거나 브라우저와 관련된 기능을 수행하는 메서드와 속성을 포함합니다. 예를 들면: window.document: 현재 문서에 접근 window.alert(): 알림 창 띄우기 window.innerWidth, window.innerHeight: 브라우저 창의 내부 크기 전역 변수와 함수 선언: .. 2024. 2. 2.
프로토타입 체인 프로토타입 체인(Prototype Chain)은 JavaScript의 객체 지향 프로그래밍에서 중요한 개념 중 하나로, 객체 간의 상속 및 속성 및 메서드 검색을 위한 메커니즘을 설명합니다. 이 개념은 JavaScript의 객체 지향 특성을 이해하는 데 중요합니다. 프로토타입 체인은 다음과 같은 핵심 개념으로 구성됩니다: 프로토타입(Prototype): JavaScript 객체는 프로토타입을 가질 수 있습니다. 프로토타입은 다른 객체로부터 속성과 메서드를 상속받을 수 있도록 하는 객체입니다. 프로토타입 체인(Prototype Chain): JavaScript에서 객체는 프로토타입 체인을 따라 상위 프로토타입 객체의 속성과 메서드를 검색할 수 있습니다. 객체가 어떤 속성 또는 메서드를 찾을 때, 현재 객체.. 2024. 2. 2.
화살표 함수가 논컨스트럭터 구조인 이유와 반례 화살표 함수가 non-constructor(논컨스트럭터) 구조인 이유는 다음과 같습니다: 생성자 함수로 사용할 수 없음: 화살표 함수는 new 키워드와 함께 사용할 수 없습니다. 생성자 함수로 사용하려고 하면 에러가 발생합니다. 화살표 함수는 인스턴스를 생성하거나 초기화하는 데 사용할 수 없습니다. this 바인딩: 화살표 함수는 자체적으로 **this**를 가지지 않고, 외부 스코프(함수나 블록)의 **this**를 상속받습니다. 이로 인해 화살표 함수 내부에서 **this**를 수정할 수 없습니다. 이 특성은 일반적인 함수와 다릅니다. 예제를 통해 살펴보겠습니다: function regularFunction() { this.value = 42; } const arrowFunction = () => {.. 2024. 2. 2.
const 키워드의 객체 const 키워드를 사용하여 선언한 변수는 재할당이 불가능한 변수를 나타냅니다. 이것은 변수가 한 번 초기화되면 다른 값을 할당할 수 없다는 것을 의미합니다. 그러나 **const**로 선언한 변수가 객체를 참조하는 경우, 객체 자체를 변경할 수 있습니다. 다시 말해, const 변수가 참조하는 객체의 속성을 변경하는 것은 허용됩니다. 예를 들어: const person = { name: "Alice", age: 30 }; // 객체 속성 변경 가능 person.age = 31; console.log(person); // 출력 결과: { name: 'Alice', age: 31 } 위의 코드에서 person 변수는 **const**로 선언되었지만, 객체 자체를 변경하지 않고 객체의 속성을 변경하였으므로 .. 2024. 2. 2.
호이스팅 호이스팅(Hoisting)은 JavaScript에서 변수와 함수 선언이 소스 코드 내에서 물리적 위치에 관계없이 해당 스코프(scope)의 맨 위로 끌어올려지는 동작을 의미합니다. 이 동작은 JavaScript 엔진에 의해 실행되며 코드를 해석하고 실행하기 전에 수행됩니다. 호이스팅은 다음 두 가지 주요 요소에서 발생합니다: 변수 호이스팅(Variable Hoisting): 변수 선언(var 키워드로 선언한 변수)이 해당 스코프의 맨 위로 끌어올려지는 현상입니다. 변수 선언은 초기화(값 할당) 단계까지 끌어올려지지만, 초기화는 호이스팅되지 않습니다. 즉, 변수가 선언되어 있지만 초기화되기 전에 접근하면 **undefined**가 반환됩니다. 예제: console.log(x); // undefined va.. 2024. 2. 2.
일급 객체 일급 객체(First-Class Object)는 프로그래밍 언어에서 다음의 세 가지 조건을 모두 충족하는 객체를 가리킵니다: 변수에 할당 가능(Assignable): 일급 객체는 변수에 할당할 수 있어야 합니다. 즉, 객체를 변수에 저장하거나 함수의 매개변수로 전달할 수 있어야 합니다. 함수의 매개변수로 전달 가능(Passable as a Parameter): 일급 객체는 함수의 매개변수로 전달할 수 있어야 합니다. 함수 내에서 다루거나 조작할 수 있어야 합니다. 반환 값으로 사용 가능(Returnable): 일급 객체는 함수의 반환 값으로 사용할 수 있어야 합니다. 다른 함수 내에서 반환되거나, 다른 함수에 의해 생성될 수 있어야 합니다. JavaScript에서는 함수가 일급 객체로 취급됩니다. 이것은.. 2024. 2. 2.
ECMAScript 에서의 공유에 의한 전달 ECMAScript (JavaScript)에서 "공유에 의한 전달"은 객체와 배열과 같은 참조 타입(reference type)에 적용되는 개념입니다. JavaScript에서 객체와 배열은 변수나 함수에 할당될 때 그 값 자체가 아닌 참조(reference)가 전달됩니다. 이것은 "공유에 의한 전달"이라고 표현될 수 있습니다. 즉, 객체나 배열을 여러 변수에 할당하면 모두 동일한 객체 또는 배열을 참조하게 됩니다. 다음은 "공유에 의한 전달"을 보여주는 JavaScript 예제입니다: let originalArray = [1, 2, 3]; let referenceArray = originalArray; // 참조 복사 referenceArray.push(4); // referenceArray를 수정 co.. 2024. 2. 2.
옵셔널 체이닝 ECMAScript 11 (ES11), 또는 ECMAScript 2020는 JavaScript의 최신 버전 중 하나입니다. 이 버전에서 도입된 중요한 기능 중 하나는 "옵셔널 체이닝(Optional Chaining)"입니다. 옵셔널 체이닝은 객체의 속성을 안전하게 접근하고 검사하기 위한 기능으로, 코드를 보다 간결하고 안정적으로 만들어줍니다. 옵셔널 체이닝은 객체의 속성을 접근할 때 객체가 존재하지 않는 경우에도 오류를 발생시키지 않고 체이닝된 속성을 검사합니다. 이 기능은 많은 코드에서 널 값 또는 언디파인드(Null or Undefined)를 다룰 때 유용하게 사용됩니다. 옵셔널 체이닝의 사용법은 다음과 같습니다: // 객체의 중첩된 속성을 안전하게 접근 const person = { name: 'J.. 2024. 2. 2.
728x90
반응형
LIST