반응형
✅ 1. Symbol(심볼) 이란?Symbol은 자바스크립트 ES6에 도입된 원시 타입(Primitive Type)중 하나로 고유하고 변경 불가능한 값입니다. 주로 객체의 키(Key)로 사용해 충돌을 방지할 때 활용됩니다.const id = Symbol("id");console.log(id); // Symbol(id)console.log(typeof id); // symbol✅ 2. Symbol 특징 고유성 보장: 같은 설명(description)을 줘도 하상 다른 값을 반환함const a = Symbol("test");const b = Symbol("test");console.log(a === b); // false문자열 변환 불가: 자동으로 문자열이 반환되지 않음const sym = Symbol("..
✅ 1. BigInt - 큰 정수 처리Javascript에서 일반적인 숫자(Number)는 2^53 - 1(약 9경)까지 처리할 수 있지만 그 이상의 수까지 처리하기 위해서는 BigInt를 사용해서 처리해야 합니다. BigInt를 생성하려면 다음과 같습니다.// ✅ BigInt 생성하기 - 숫자 뒤에 n을 붙이거나 BigInt() 함수 사용const big1 = 1234567890123456789012345678901234567890n; // 숫자 뒤에 n을 붙임const big2 = BigInt("1234567890123456789012345678901234567890"); // BigInt() 함수 사용console.log(big1); // 12345678901234567890123456789012..
✅ 1. 정적 메서드 (Static Method)정적 메서드(Static Method)는 클래스 자체에서 호출되는 함수로, 인스턴스 없이 클래스 이름으로 직접 사용합니다. 유틸리티 함수나 공용 기능에 자주 사용되는 메서드입니다.class MathUtil { static randomInt(min, max) { // 정적 메서드 return Math.floor(Math.random() * (max - min + 1)) + min; }}console.log(MathUtil.randomInt(1, 20)); // ✅ 1~20 사이의 랜덤 정수✅ 2. 정적 필드 (Static Field) 정적 필드(Static Field)는 클래스 자체에 속하는 함수로, 인스턴스가 아닌 클래스에 바로 접근합니다. ..
📖 1. 프라이빗 필드(privateField)자바스크립트는 ES20222(ES13) 버전 부터 프라이빗 필드/메서드를 공식적으로 지원합니다. 방법은 간단하게 # 기호를 붙여 사용할 수 있습니다.class Person { #name; // private 필드 선언 constructor(name) { this.#name = name; // 생성자에서 초기화 } getName() { return this.#name; // 내부에서는 접근 가능 } setName(newName) { this.#name = newName; // 외부 값 접근 허용 }}const p = new Person("mary");console.log(p.getName()); // ✅ "mary";console..
✅ 1. 자바스크립트 모듈 시스템자바스크립트에서 모듈(module)은 코드의 재사용과 관리 편의성을 위해 나눠서 작성하는 파일입니다. 대표적으로 ESM(ES Module)과 CommonJS(CJS)가 있습니다. 대부분은 ESM 방식을 채택하고 있습니다. 먼저 기존 모듈을 불러오는 방식에 대해서 설명해보겠습니다.// 상수 내보내기export const PI = 3.14;// 함수 내보내기export function add(a, b) { return a + b;}export -> 다른 파일에서 사용할 수 있도록 내보내는 키워드모듈로 내보낸 값은 여러개 사용 가능브라우저에서는 안에서 사용✅ 2. 모듈 가져오기 (import)import 문을 사용해 export한 값을 가져올 수 있습니다. 여러개의 값을 가..
✅ 1. 클래스 기본 문법자바스크립트에서 class는 객체를 생성하기 위한 템플릿으로, ES6(2015)부터 도입된 문법으로 자바나 C#과 조금 비슷한 구조입니다. 클래스 선언 시 class를 사용합니다.class Person { // 생성자 (객체 생성 시 자동 실행) constructor(name, age) { this.name = name; this.age = age; } // 메서드 (Prototype에 저장) sayHell() { console.log(`Hello, my name is ${this.name}, ${this.age} years old`); }}// 객체 생성const p1 = new Person("James", 25);p1.sayHell(); // Hel..