자료구조/알고리즘 (JavaScript ver.) 5일차

saebom_·2022년 3월 9일
0

✔얕은복사

let user = {
  name : 'garam',
  age : 25
}

let admin = {}

//첫번째 얕은복사
for (let key in user) {
  admin[key] = user[key]
}
// 두번째 얕은복사
let admin = Object.assign({}, user)

Objeect.assign()
두 객체를 병합해서 반환시켜줌

// 세번째 얕은복사
let admin = {... user}

{ . . . user }
전개연산자
user내의 모든 필드값을 뿌려라
={user.name, user.age} 랑 같은의미
새로운 공간을 만들고 각각의 내용을 가르켜라

  • 얕은 복사 문제점
    adimin 각각의 값들을 가지고 오면서 size에 대한 값은 주소값 그대로 가져오게됨 -> size 부분 수정하면 주소 레퍼런스로 참조가 되서 실제 값이 다 바뀜

이런 문제를 해결하기 위해 깊은 복사가 나오게 됨
깊은 복사 -> 내부에 주소값이 있으면 알아서 얕은 복사를 한번 더 함

✔json 객체
restful api 에서 데이터 송수신 할 때 많이 쓰는 포멧

✔깊은복사


// 두번째 깊은복사
let admin = JSON.parse(JSON.stringify(user))

stringify 함수로 object를 string으로 변환 -> parse 함수를 통해 다시 json으로 만들어줌 (다시 object로 옴)

Q. 왜 문자열로 갔다가 다시 오브젝트로 오는 가?
내부에 어떤 단계적 오브젝트가 있던간에 문자열에 있는 것들을 모두다 다시 새로운 오브젝트로 만들어준다고 함

✔boolean

문자열에 값이 있으면 ture
값이 없으면 false

숫자 0은 false
0이 아니면 다 true

  • 비교를 하게 될 때 어떤 기대값이 나오는지 예측을 해서 조건문을 쓸 수 있음

✔몫 구하기

parseint(31 / 10)


  • ++(피연산자)
    결과값이 그 행부터 바로 반영됨

  • (피연산자)++
    결과값이 다음 행부터 반영됨

  • 5 == '5' true
    자동으로 형변환이 됨
    값에 대한 본질 비교

  • 문자열에 대한 비교
    첫번째값부터 비교 순차적으로 비교하다가 그 이후의 값이 한쪽이 크게되면 판단 (알바벳 순서상 뒤에 있거나, 문자가 더 길거나)

  • &&
    둘 다 참이여야 참

  • ||
    둘 중 하나라도 참이면 참

0개의 댓글

관련 채용 정보