220v
젝무의 개발새발
220v
전체 방문자
오늘
어제
  • 분류 전체보기 (255)
    • AI (35)
      • ML, DL 학습 (30)
      • 논문 리뷰 (4)
      • 실습 및 프로젝트 (1)
    • Algorithm (145)
      • LeetCode (13)
      • 프로그래머스 (35)
      • 백준 (96)
      • 알고리즘, 문법 정리 (1)
    • Mobile, Application (17)
      • Flutter (10)
      • iOS, MacOS (7)
    • BackEnd (7)
      • Flask (1)
      • Node.js (5)
      • Spring, JSP..etc (1)
    • Web - FrontEnd (18)
      • JavaScript, JQuery, HTML, C.. (12)
      • React (6)
    • DataBase (1)
      • MySQL (1)
      • Firebase Firestore (0)
      • Supabase (0)
    • Git (1)
    • 기타 툴 및 오류 해결 (3)
    • 강의 (5)
      • Database (3)
      • 암호학 (2)
      • 알고리즘 (0)
    • 후기와 회고 (2)
    • 블로그 꾸미기 (1)
    • 일상과 이것저것 (20)
      • 맛집 (12)
      • 세상사는일 (4)
      • 도서리뷰 (1)
      • 이런저런 생각들 (잡글) (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Minimum Spanning Tree
  • Priority Queue
  • 구현
  • Greedy
  • top-down
  • Prefix Sum
  • 다익스트라
  • REACT
  • Backtracking
  • BFS
  • simulation
  • Mathematics
  • IMPLEMENT
  • dp
  • 오블완
  • binary search
  • Dynamic Programming
  • two pointer
  • 프로그래머스
  • implementation
  • disjoint set
  • 백준
  • brute-Force
  • dfs
  • topological sort
  • Lis
  • union-find
  • 티스토리챌린지
  • bitmasking
  • 위상 정렬

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
220v

젝무의 개발새발

Web - FrontEnd/JavaScript, JQuery, HTML, CSS..

[JavaScript] JavaScript 기본 문법 (4) - 객체 (1) - 기본 개념

2022. 4. 13. 03:09

객체 (Object)

키(key) : 값(value) 쌍으로 이루어진 property(프로퍼티)를 여러 개 저장할 수 있는 자료형.

 

객체 생성법

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

객체 선언은 주로 객체 리터럴(object literal) 방법을 사용.

객체 생성자 함수를 사용한 객체의 생성은 기본문법(7)-객체(4)에서 서술.

 

객체 프로퍼티 조작

객체 생성

let user = {
  name: "John",  // key: "name", value: "John"
  age: 30        // key: "age", value: 30
};

Property 추가

(object).(key) = (value) 또는 (object name)[(key)] = (value) 로 프로퍼티 추가.

key값을 대괄호로 감싸는 문법은 아래에서 서술.

let user = {};
user.name = "John";
console.log(user.name);

// output : John

Property 삭제

delete (key) 로 객체 키값과 함께 프로퍼티 삭제.

let user = {
  name: "John",
  age: 30
};
delete user.name;
console.log(user);

// output : { age: 30 }

단축 property

property의 value를 변수에서 받아와 사용할 때, key값과 변수의 이름이 동일하다면 축약하여 사용 가능.

let key = "name";
let age = 30;

let user = {
    key,   // key : key 와 동일
    age,   // age : age 와 동일
};

console.log(user);
// output : { key: 'name', age: 30 }

 

대괄호 표기법(Square brackets)

key값이 '유효한 변수 식별자' (Ex. 띄어쓰기를 포함한 문자열, 숫자로 시작하는 key, $나 _가 아닌 특수문자를 포함) 가 아니거나, 변수를 key값으로 이용하고 싶을 때 대괄호 표기법을 사용.

Property 추가, 삭제, value 접근

let user = {};

// set
user["likes birds"] = true;

// get
console.log(user["likes birds"]); // output : true

// delete
delete user["likes birds"];

변수로 property에 접근

let user = {
    name: "John",
    age: 30,
};

let key = "name";
console.log(user[key]); // key값에 변수를 넣어 접근.
console.log(user.key);	// user.key로는 접근 불가.
// output : 
// John
// undefined

key = "age";
delete user[key]; // key값이 age인 property 삭제.
console.log(user);
// output : { name: 'John' }

계산된 property

Object(객체)를 생성할 때, key 또는 value를 변수를 이용해 생성 가능.

let key1 = "name";
let value2 = 30;

let user = {
    [key1]: "John",			// key값에 변수를 이용할 때는 [ ]를 이용.
    age: value2,			// value에 변수를 이용할 때는 변수만 입력.
    ["last" + key1]: "HI"	// [ ]내에 복잡한 표현식이 들어가도 무방.
};

console.log(user);
// output : { name: 'John', age: 30, lastname: 'HI' }

 

'in' 연산자로 property 존재 여부 확인

(key) in (object) 로 해당 key값을 가진 property의 존재 여부를 확인할 수 있음.

let user = {};

console.log(user.name === undefined);	// output : true
console.log("name" in user);			// output : false

 

'for...in' 반복문

for ( "key" in (object) ) 로 object의 모든 프로퍼티를 순회 가능.

"key" 에 각 property의 key값이 담기며 순회. Python의 for...in과 유사함.

let user = {
    name: "John",
    age: 30,
    isAdmin: true,
};

for (key in user) {
    console.log(user[key]);
}

// output : 
// John
// 30
// true

 

reference

https://javascript.info/

    'Web - FrontEnd/JavaScript, JQuery, HTML, CSS..' 카테고리의 다른 글
    • [JavaScript] JavaScript 기본 문법 (6) - 객체 (3) - 메소드(Method)와 this 키워드
    • [JavaScript] JavaScript 기본 문법 (5) - 객체 (2) - Shallow Copy(Copy by reference), Deep Copy(Copy by value)
    • [JavaScript] JavaScript 기본 문법 (3) - 반복문에서의 Label(레이블), break, continue.
    • [JavaScript] JavaScript 기본 문법 (2) - 동등 연산자(Equal Operator), 일치 연산자(Strict Equal Operator) : ==, === / !=, !==
    220v
    220v
    DGU CSE 20 / Apple Developer Academy @ POSTECH 2nd Jr.Learner.

    티스토리툴바