
현재 오즈코딩스쿨 강의를 통해 프론트엔드를 학습하고 있습니다.
본 포스트는 해당 강의에 대한 내용 정리를 목적으로 합니다.
new 키워드를 사용해 새로운 객체를 생성하는 함수이다.PascalCase 방식으로 작성한다.function Person(name, age) {
this.name = name;
this.age = age;
this.sayHello = function() {
console.log(`안녕하세요, 저는 ${this.name}입니다.`);
};
}
const person1 = new Person("상희", 25);
const person2 = new Person("채홍", 32);
console.log(person1.name); // "상희"
console.log(person2.age); // 32
person1.sayHello(); // "안녕하세요, 저는 상희입니다."
new Person("상희", 25)를 실행하면 새로운 객체가 생성됨.this 키워드는 새로 만들어지는 객체를 가리킴.class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
sayHello() {
console.log(`안녕하세요, 저는 ${this.name}입니다.`);
}
}
const person1 = new Person("상희", 25);
person1.sayHello(); // "안녕하세요, 저는 상희입니다."
class 문법을 사용하면 객체 지향 프로그래밍을 쉽게 구현 가능.const person = Object.create(null);
person.name = "상희";
person.age = 25;
console.log(person.name); // "상희"
Object.create()를 사용하면 프로토타입을 지정하여 객체 생성 가능.
자바스크립트에서 기본적으로 제공하는 내장 생성자 함수를 의미한다.
new 키워드를 사용해 문자열, 숫자, 배열, 객체 등을 생성할 수 있다.
const obj1 = new Object();
obj1.name = "상희";
console.log(obj1); // { name: "상희" }
const arr = new Array(1, 2, 3);
console.log(arr); // [1, 2, 3]
💡 보통 [] 리터럴을 사용하는 것이 더 간편함 → const arr = [1, 2, 3];
const str = new String("Hello");
console.log(str); // String {"Hello"}
console.log(typeof str); // "object"
💡 기본 문자열 리터럴("Hello")을 사용하는 것이 일반적
const num = new Number(123);
console.log(num); // Number {123}
console.log(typeof num); // "object"
💡 일반적으로 Number 객체보다는 리터럴(123)을 사용하는 것이 좋음.
const bool = new Boolean(false);
console.log(bool); // Boolean {false}
console.log(typeof bool); // "object"
💡 false 값을 Boolean 객체로 생성하면 if(bool)에서 true로 평가될 수 있음.
→ 리터럴 false를 사용하는 것이 안전함.
const now = new Date();
console.log(now); // 현재 날짜 및 시간 출력
const regex = new RegExp("\\d+"); // 숫자를 찾는 정규식
console.log(regex.test("123")); // true
💡 정규식을 생성할 때 보통 리터럴 표기법 사용: /\d+/
const error = new Error("에러 발생!");
console.log(error.message); // "에러 발생!"
String(), Number(), Boolean() 생성자는 객체를 생성하므로 기본 자료형처럼 동작하지 않음.const str1 = "Hello"; // 일반 문자열
const str2 = new String("Hello"); // 문자열 객체
console.log(typeof str1); // "string"
console.log(typeof str2); // "object"
console.log(str1 === str2); // false
const str = "Hello"; (권장)const str = new String("Hello"); (비추천)👉 일반적으로 Object, Array, Date 등은 유용하지만, String, Number, Boolean 같은 기본 자료형은 리터럴 방식이 더 좋다.

자바스크립트에서 특정 시간이 지난 후 또는 일정 간격마다 함수를 실행하는 메소드다.
지정된 시간(ms) 후에 한 번 실행하는 함수.
setTimeout(function() {
console.log("3초 후 실행!");
}, 3000);
✔️ setTimeout(함수, 지연시간(ms))
const timer = setTimeout(() => console.log("실행되지 않음"), 5000);
clearTimeout(timer); // 실행 취소
지정된 시간(ms)마다 반복 실행하는 함수.
setInterval(function() {
console.log("2초마다 실행!");
}, 2000);
✔️ setInterval(함수, 간격(ms))
const interval = setInterval(() => console.log("반복 실행"), 1000);
setTimeout(() => clearInterval(interval), 5000); // 5초 후 중지
setInterval 대신 setTimeout을 재귀적으로 호출하는 방법도 있음.
function repeat() {
console.log("1초마다 실행!");
setTimeout(repeat, 1000);
}
setTimeout(repeat, 1000);
✔️ 장점: setTimeout은 실행 간격을 유연하게 조정할 수 있음.

👉 setTimeout은 한 번 실행, setInterval은 반복 실행.
정신없이 시간은 빠르게 흘러가고.. 내 머리는 포화상태..