댓글 검색 목록

[javascript] JavaScript의 기본 유형과 객체

페이지 정보

작성자 운영자 작성일 20-06-10 11:10 조회 559 댓글 0

JavaScript에서 기본 유형과 객체의 주요 차이점은 무엇입니까?


먼저 기본 유형이 무엇인지 정의 해 봅시다.


JavaScript의 기본 유형은

  • strings
  • numbers (Number and BigInt)
  • booleans (true or false)
  • undefined
  • Symbol values

null은 특수한 기본 유형입니다. typeof null을 실행하면 '개체'가 다시 표시되지만 실제로는 기본 유형입니다.


기본 유형이 아닌 모든 것은 객체입니다.


함수도 객체입니다. 함수에 속성과 메소드를 설정할 수 있습니다. typeof는 'function'을 반환하지만 Function 생성자는 Object 생성자에서 파생됩니다.


기본 유형과 객체의 큰 차이점은


  • 기본 유형은 변경할 수 없으며 객체는 변경할 수 없는 참조 만 갖지만 시간이 지남에 따라 값이 변경 될 수 있습니다
  • 기본 유형은 값으로 전달됩니다. 객체는 참조로 전달됩니다.
  • 기본 유형은 값으로 복사됩니다. 객체는 참조로 복사됩니다
  • 기본 유형은 값으로 비교됩니다. 객체는 참조로 비교됩니다

이런 식으로 기본 유형을 복사하는 경우 :


let name = 'Flavio'
let secondName = name


이제 이름 변수에 새 값을 할당하여 변경할 수 있지만 secondName은 값으로 복사되었으므로 여전히 이전 값을 보유합니다.


name = 'Roger'
secondName //'Flavio'


우리가 물건을 가지고 있다면 :


let car = {
  color: 'yellow'
}


그리고 다른 변수에 복사합니다 :


let car = {
  color: 'yellow'
}

let anotherCar = car


이 경우 anotherCar는 car와 동일한 객체를 가리킵니다. 설정하면


car.color = 'blue'


또한


anotherCar.color


'파란색'이 됩니다.


객체를 함수로 전달하고 비교하는 것도 마찬가지입니다.


car를 anotherCar와 비교하고 싶다고 가정 해보십시오.


anotherCar === car //true


두 변수가 정확히 같은 객체를 가리 키기 때문에 이것은 사실입니다.


그러나 anotherCar가 car와 동일한 속성을 가진 객체인 경우 이를 비교하면 잘못된 결과가 나타납니다.


let car = {
  color: 'yellow'
}

let anotherCar = {
  color: 'yellow'
}

anotherCar === car //false



댓글목록 0

등록된 댓글이 없습니다.

웹학교 로고

온라인 코딩학교

코리아뉴스 2001 - , All right reserved.