Day17 : 비교연산자, 배열과 객체의 비교

2023. 11. 28. 22:05Language/JavaScript

비교연산자

: js의 데이터를 서로 비교하여 조건의 성립 여부를 판단하기 위해 사용

 

===

  • 서로 같은지 비교
  • boolean 타입으로 반환
  • 엄격한 비교 → 데이터의 주소값까지 비교

==

  • 느슨한 비교
  • 사용x  → 제대로 된 비교x

 

이번에는 변수에 배열을 넣어보자

arr에  [1,2,3]이라는 배열을 넣고

arr과 [1,2,3]이라는 배열을 비교했는데 다르다는 결과가 나왔다.

 

 

→그 이유는 원시타입(Primitive type)과 참조타입(Reference type)의 차이 때문이다.

 

 

        원시타입              참조타입     

String 이외의 모든 것
Number
Boolean
Bigint
undefined
Symbol
Null

 

 

이 결과가 false인 이유

: 배열은 생성할 때마다 고유한 주소값을 갖는다.

 

arr은 이미 101이라는 주소를 가지고 있고

이와 비교하기 위해 [1,2,3]이라는 배열을 생성했을 때

[1,2,3]은 101과는 다른 202라는 주소를 가지게 되므로

이는 false이다.

 

 

원시타입과 참조타입의 또 다른 차이점

 

원시타입의 복사

원시타입 데이터는 값이 복사가 된다.

값을 복사해준 뒤에 원본데이터를 재할당해주어도 복사된 데이터에 영향을 끼치지 않는다.

 

 

참조타입의 복사

참조타입에서는 원본 배열에 변화를 주었을 때 복사된 데이터에까지 영향을 준다.

'Language > JavaScript' 카테고리의 다른 글

Day19 : 조건에 따른 메시지 출력  (2) 2023.12.04
Day18 : 조건문과 논리연산자  (0) 2023.12.03
Day16 : localhost란?  (2) 2023.11.27
Day15 : 함수 선언의 종류  (0) 2023.11.27
Day14 : 함수의 반환  (2) 2023.11.24