본문 바로가기
부트캠프교육중/JavaScript

[JavaScript] 객체

by 뭉지야 2022. 12. 31.
728x90

객체 (object)

입력해야 하는 데이터의 종류가 동일한 경우 객체를 사용하면 손쉽게 데이터를 관리할 수 있습니다.

이렇게 공통적인 속성을 가지는 경우 객체를 사용해야 합니다.

객체는 0개 이상의 프로퍼티의 조합으로 되어있다.

 

# property

프로퍼티란 속성이란 뜻으로 자바스크립트에서 객체 내부의 속성을 의미한다.
객체는 프로퍼티로 구성된다.
프로퍼티는 key : value 의 형식으로 객체 안의 콤마(,)로 구분되어 할당된다.
key는 속성명, value는 속성값이라고 생각하면 된다.

 

let user = {
     firstName: 'Steve',
     lastName: 'Lee',
     email: 'steve@codestates.com',
     city: 'Seoul' };

 

# lastName은 키(key)
'Lee'은 값(value)
키,값 사이는 콜론(:)으로 구분한다.

객체는 키와 값 쌍(key-value pair)으로 이루어져 있다.
중괄호{}를 사용해서 객체를 만든다.
키값쌍은 쉼표로 구분한다

 

# 객체에는 길이가 없다.!!!!
object.length === undefined


# 객체의 값을 사용하는 방법
1. Dot notation
user.firstName; //'Steve'
user.city;  // 'Seoul'

2. Bracket notation
user['firstName'];  // 'Steve'
user['city'];  // 'Seoul'
[]안에는 작은따옴표, 큰따옴표, 백틱 상관없다
[]안에는 문자열로 들어간다
[]안에 따옴표나 백틱없이 들어가면 변수인거다! 

 

# let keyname = 'content'
tweet[keyname]
tweet[keyname] === tweet['content']

(여기서 keyname은 변수인거다)

 

let tweet = {
 writer : 'stevelee',
createdAt: '2019-09-10',
content: '프리코스 재밌어요!'

# 값을 추가
tweet['category'] = '잡담';
tweet.isPublic = true;
tweet.tags = ['#코드스테이츠', '#프리코스'];

 

# 삭제도 가능하다: delete 객체명.키
delete tweet.createdAt ;

 

# 수정할때
mycatcoid.개월  = 10;

# in연산자를 이용해 해당하는 키가 있는지 확인할수 있다. (유무확인) : 키 in 객체명
'content' in tweet; // true
'updatedAt' in tweet; // false


#추가 메서드
Object.keys(obj) : 객체의 키(key)만 담은 배열을 반환한다.

Object.values(obj) : 객체의 값(value)만 담은 배열을 반환한다.

Object.entries(obj) : [키, 값] 쌍을 담은 배열을 반환한다.

object.assign : 두개의 객체를 합칠때 
                        중복되는건 뒤에꺼로 나온다 (엔지니어 나온다) (뒤의 키에있던 값으로 나온다)
                        slice같이 복사하는 기능도 할수있다

object.is(obj1, obj2) : 두객체가 같은지 비교

 

# 빈객체에다가 추가할때
let newcat ={};
newcat['이름'] = mycatdoi['이름']


★★★이거 아예 암기하기★★★★

result[prop] = obj[prop]

 

result객체에 prop를 키로 한 값에다가, obj객체의 prop을 키로 한 값을 할당한다!!!!!!   이런 의미이다    


# 객체(obj), 키(property), 값(value)

키에 값을 할당 ★★★

obj[property] = value;


# 객체의 모든 key를 콘솔에 출력하기 위한 방법 -> for in 순회반복문
-> function allKeys(obj) {
          for (let key in obj) {
         console.log(key) } 

     }


# for (let element of arr) 와
  for (let i=0; i < arr.length; i+=1)
두 문장이 같다고 생각하면 된다.


# 객체의 단축 (Property shorthand)
객체 안에 key와 value를 쓸때, 이미 변수로 선언된 key에 대해서는 굳이 value를 정의해줄 필요가 없는 것을 의미한다.
key와 value값이 같을 때 이미 정의된 변수 값으로 value값을 지정해준다.

let a = "b"
let c = "d"
let e = "f"
let couple = {a, c, e}

couple;                             // {a: "b", c: "d", e: "f"}
728x90