• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

엄격한 비교 연산자 (변수와 배열의 차이)

23.01.09 00:43 작성 조회수 218

0

선생님 노션 내용에서 메모리 주소 부분 설명 가능할까요? 어떤 의미인지 알겠는데 그럼 변수도 메모리 주소 다르니 false 나와야하는것이 아닐까여?

엄격한 비교 연산자는 데이터의 메모리 주소를 비교하는 것으로 알고 있는데 변수는 메모리 주소가 다른데 왜 true 반환할까요?

답변 1

답변을 작성해보세요.

1

otter님의 프로필

otter

2023.01.09

안녕하세요 초록천사님!

코드를 보며 설명 드려보도록 할게요!

const str = "hello";

위의 코드를 보면 str이라는 상수를 선언하고 그 안에 문자열 "hello"를 담아주고 있습니다.

이때, 자바스크립트 실행 환경에서는 "hello"라는 메모리에 저장되어 있지 않은 새로운 문자열을 만났기 때문에 이때 특정 메모리 주소에 문자열을 저장하게 됩니다.

이미 메모리에 저장되어 있다면, 불필요하게 새로운 주소값에 중복으로 저장해줄 필요가 없겠죠?

때문에 이후부터는 우리가 "hello"라는 문자열을 불러올 때마다 최초로 저장된 주소값, 즉 항상 같은 주소값을 가지게 되는 것이죠!

str === "hello"

그렇기 때문에 같은 문자열의 경우 주소값까지 항상 같기 때문에 비교식이 true를 반환하는 것입니다👍