자바스크립트에는 여덟 가지 기본 자료형이 있습니다.
- 숫자형 – 정수, 부동 소수점 숫자 등의 숫자를 나타낼 때 사용합니다. 정수의 한계는 ±253 입니다.
- bigint – 길이 제약 없이 정수를 나타낼 수 있습니다.
- 문자형 – 빈 문자열이나 글자들로 이뤄진 문자열을 나타낼 때 사용합니다. 단일 문자를 나타내는 별도의 자료형은 없습니다.
- 불린형 – true, false를 나타낼 때 사용합니다.
- null – null 값만을 위한 독립 자료형입니다. null은 알 수 없는 값을 나타냅니다.
- undefined – undefined 값만을 위한 독립 자료형입니다. undefined는 할당되지 않은 값을 나타냅니다.
- 객체형 – 복잡한 데이터 구조를 표현할 때 사용합니다.
- 심볼형 – 객체의 고유 식별자를 만들 때 사용합니다.
이 중 객체를 제외한 7가지 자료형은 오직 하나의 데이터(문자열, 숫자 등)만 담을 수 있어 "원시형(primitive type)"이라고 부릅니다.
그런데 객체는 원시형과 달리 다양한 데이터를 담을 수 있습니다. 키로 구분된 데이터 집합이나 복잡한 개체(Entity)를 저장 할 수 있습니다.
객체는 중괄호({})를 이용해 만들고, 이 안에는 "키(Key) : 값(Value)"쌍으로 구성된 프로퍼티(Property)를 여러개를 넣을 수 있습니다. 키, 값에는 모든 자료형이 허용됩니다. 프로퍼티 키는 "프로퍼티 이름"이라고도 부릅니다.
빈 객체를 만드는 방법 2가지
let user = new Object(); // '객체 생성자' 문법
let user = {}; // '객체 리터럴' 문법
객체를 선언할 때는 주로 객체 리터널 방법을 많이 사용합니다.
예시
let user = { // 객체
name: "John", // 키: "name", 값: "John"
age: 30 // 키: "age", 값: 30
};
프로퍼티 값 얻기
// 프로퍼티 값 얻기
alert( user.name ); // John
alert( user.age ); // 30
프로퍼티 값 추가
user.isAdmin = true;
프로퍼티 값 삭제
delete user.age;
객체 지향 프로그래밍이란?
객체 지향 프로그래밍(OOP)은 프로그램을 객체(object)들로 구성하여 설계하고 개발하는 방법입니다. 주요 개념은 다음과 같습니다:
- 객체(Object): 데이터(속성)와 이를 조작하는 함수(메서드)의 집합.
- 클래스(Class): 객체를 생성하기 위한 청사진.
- 상속(Inheritance): 하나의 클래스가 다른 클래스의 속성과 메서드를 재사용.
- 다형성(Polymorphism): 동일한 메서드가 다양한 객체에서 다르게 동작.
- 캡슐화(Encapsulation): 객체의 내부 상태를 숨기고, 메서드를 통해 접근.
자바스크립트에서의 객체 지향 프로그래밍
클래스 사용 예시
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} makes a noise.`);
}
}
class Dog extends Animal {
constructor(name) {
super(name);
}
speak() {
console.log(`${this.name} barks.`);
}
}
let dog = new Dog('Rex');
dog.speak(); // Rex barks.
프로토타입 사용 예시
function Animal(name) {
this.name = name;
}
Animal.prototype.speak = function() {
console.log(this.name + ' makes a noise.');
};
function Dog(name) {
Animal.call(this, name);
}
Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;
Dog.prototype.speak = function() {
console.log(this.name + ' barks.');
};
let dog = new Dog('Rex');
dog.speak(); // Rex barks.
728x90
'공부 > JavaScript' 카테고리의 다른 글
자바스크립트가 뭘까요? (0) | 2024.11.23 |
---|---|
자바스크립트의 동작 원리 - Heap, Stack, Queue (0) | 2024.11.23 |