[JS] 객체

Rookie·2022년 3월 13일
1
post-thumbnail

객체는 다양한 데이터를 담을 수 있다.
키로 구분된 데이터 집합이나 복잡한 개체를 저장할 수 있다.

객체는 중괄호 {..} 를 이용해 만들 수 있는데, 중괄호 안에는 '키(key):값(value)'쌍으로 구성된 프로퍼티 (property)를 여러개 넣을 수 있는데, 키 (key)엔 문자형,값(value)엔 모든 자료형이 허용된다.

빈 객체 만들기 형식

let user = new object(); // 객체 생성자 문법
let user = {}; // 객체 리터럴 문법

***중괄호를 이용해 객체를 선언하는것을 객체 리터럴 (object literal) 이라 부른다.**

리터럴과 프로퍼티

let user = {     // 객체
  name: "John",  // 키: "name",  값: "John"
  age: 30        // 키: "age", 값: 30
};

*콜론(:)을 기준으로 왼쪽엔 키가, 오른쪽엔 값이 위치한다. 프로퍼티 키는 프로퍼티 '이름' 혹은 '식별자'라고도 부른다.

  • 첫 번째 프로퍼티 – "name"(이름)과 "John"(값)
  • 두 번째 프로퍼티 – "age"(이름)과 30(값)

객체에 저장된 데이터에 접근하기

  1. DOT Notation (점 표기법)
let obj = {
	cat: 'meow',
	dog: 'woof'
};

let sound = obj.cat; // objectName.propertyName;
console.log(sound); // meow

1-1.프로퍼티 식별자는 오직 알파벳만 가능 (_&$ 포함)
1-2.숫자로 시작할 수 없음
1-3.변수를 포함할 수 없음

  1. Bracket notation ( 괄호표기법 )
let obj = {
	cat: 'meow',
	dog: 'woof'
};

let sound = obj.['cat']; // objectName["propertyName"]
console.log(sound); // meow
  • 프로퍼티 식별자는 문자열(String)을 갖는다. 어떤 문자든 공백을 포함할 수 있다.
  • 변수가 문자열로 해석되면 변수 또한 쓸 수 있다.

2-1. 프로퍼티 식별자는 문자열 혹은 문자열을 참조하는 변수
2-2. 숫자로 시작 할 수 있음
2-3. 변수,공백 사용 가능

객체의 값을 추가,수정


let obj = {
  fruit : "favorite fruit",
  "favorite fruit" : {
  apple : "first",
  peach : "second",
  banana : "third"
  }
};

// 속성 추가
obj.num = 100;
console.log(obj.num);  //  100

// 속성 값 변경
obj.fruit = "urim";
console.log(obj.fruit);  //  "urim"


console.log(obj);

객체의 값을 삭제

객채의 속성을 삭제할 때는 delete 연산자를 사용한다.

  • dot notation, bracket notation 모두 사용 할 수 있음.
let obj = {
  cat: 'meow',
  dog: 'woof',
  duck: 'quack',
  cow: 'moo',
};

delete obj.cat;
console.log(obj); // cow: "moo", dog: "woof", duck: "quack"

delete obj['dog'];
console.log(obj); //  cat: "meow", cow: "moo", duck: "quack"

delete를 사용하여 array 특정 index를 지워버리면 그 자리가 empty가 된다.

let obj = [
  {cat: 'meow'},
  {dog: 'woof'},
  {duck: 'quack'},
  {cow: 'moo'}]

delete obj[0];
console.log(obj);

/*
[undefined, {dog: "woof"},
{duck: "quack"},{cow: "moo"}]
*/
profile
노력형 잡캐입니다

0개의 댓글