HANCOM AI ACAMEMY

자바스크립트 정리

c'est sunny 2025. 2. 12.

7차시 객체(Object)

- 관련된 정보를 하나로 묶어주는 특별한 상자

- 데이터를 키-값 쌍으로 저장하는 자료 구조

 

1) 객체를 정의하는 방법

(1) 객체 리터럴 

let person = {
	name : "Alice",
    age : 30,
} // 중괄호로 객체 작성

(2) Object 생성자 함수

let person = new Object(); // 빈 객체를 생성하고 나중에 속성 추가 가능
person.name = "Bob"; 
person.age = 25;

(3) 생성자 함수 

: 객체 생성을 위한 템플릿 역할

function Person(name, age){
	this.name = name;
	this.age = age;
}

let person1 = new Person("Charlie", 30); // new 키워드와 함께 사용

(4) Object.create() 메서드

let personProto = {
	greet: function() {
    	console.log(`Hello, I'm ${this.name}`);
    },
};

let person = Object.create(personProto);
person.name = "David";

(5) 클래스

class Person {
	constructor(name, age) {
    	this.name = name;
        this.age = age;
    }
    greet() {
    	console.log(`Hello, I'm ${this.name}`);
    }
}
let person = new Person("EVE", 28);

 

- 생성자 함수를 통해 객체를 만드는 것과, 클래스를 통해 객체를 만드는 두 방식이 어떤 차이가 있는지 GPT한테 물어봄

더보기
  생성자 함수 (function) 클래스 (class)
문법 prototype을 직접 관리해야함 메서드가 자동으로 prototype에 추가됨
new 없이 호출 undefined 반환 (실수 가능) TypeError 발생 (안전)
상속 Object.create() + call() 필요 extends + super로 간편히 가능
호이스팅 호이스팅됨 호이스팅 되지 않음 => 선언전에 사용할 경우, ReferenceError 발생

 

 

2) 객체 복사 방법

(1) 얕은 복사

- 최상위 속성만 새 객체로 복사되고, 중첩된 객체는 원본과 같은 참조를 공유

- Object.assign() 메서드를 사용하여 객체를 얕게 복사할 수 있음

(2) 깊은 복사

- 원본과 완전히 독립적인 객체가 생성

- JSON.parse(JSON.stringify()) 방법을 사용하여 객체를 깊게 복사

 

3) JSON (Javascript Object Notation)

- JSON은 데이터를 저장하고 전송하기 위한 경량의 데이터 교환 형식

- 구조는 키-값 쌍의 컬렉션(객체), 순서화된 값의 목록(배열)로 구성됨

- JSON.stringfy() : JavaScript 객체를 JSON 문자열로 변환하는 JSON 메서드

- JSON.parse() : JSON 문자열을 JavaScript 객체로 변환하는 JSON 메서드

 

 

8차시 함수

- 클로저 : 내부 함수가 외부 함수의 변수에 접근할 수 있는 구조 -> 데이터 은닉과 모듈화에 유용

- 함수 팩토리 : 다른 함수를 반환하는 함수, 동적으로 새로운 함수를 생성하고 반환

- 비동기프로그래밍 : 작업이 완료될 때까지 기다리지 않고 다음 작업을 실행하는 방식

- 콜백 함수 : 다른 함수에 인자로 전달되는 함수

 

 

9차시 비동기 프로그래밍

1. promise

- 비동기 작업의 최종 완료 또는 실패를 나타내는 객체

1) 목적 : 콜백 지옥 문제 해결 및 비동기 코드의 가독성 향상

2) 상태 : 대기, 이행, 거부

3) Promise 사용 

- .then() : 성공 시 실행될 콜백

- .catch() : 실패 시 실행될콜백 

4) Promise 체이닝 

- .then()은 새로운 Promise를 반환

2. async/await

- promise를 기반으로 한 직관적인 비동기 프로그래밍 문법

- 목적 : 비동기 코드를 동기 코드처럼 보이게 작성

 async 함수는 항상 Promise를 반환

- wait는 Promise의 이행을 기다림

 

 

 

 

댓글