• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

===의미가 JAVA에서는 identity 연산자라서 그런건가요?

21.12.13 20:15 작성 조회수 449

1

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
google검색해보니
ture===1
#false
true ==1
#true
즉 추상적같음과 엄격한 같음 두가지 값이 같은지 비교하는거라고 하는데 잘 와닿지 않아서요, 설명된 자료 있을까요?

답변 1

답변을 작성해보세요.

1

우선 java와 javascript는 다른 언어임을 먼저 알려드립니다.

=== 비교연산자는 값과 타입을 전부 비교하며 ==는 값만을 비교하는 연산자입니다.

 

위에 예시로 든 true는 실제로 1이라는 값을 가집니다.

boolean이라는 type을 가졌지만 1이라는 값도 가지고 있기에 true == 1을 하면 true가 나옵니다. 

반면 true === 1을 하게 되면 true는 boolean type이고 1은 number 이기 때문에 type이 달라 false가 나옵니다.

 

보통 javascript에서 값을 비교할 때는 엄격한 비교를 하는 ===을 권장합니다 :)