옝옹
냠
옝옹
전체 방문자
오늘
어제
  • 분류 전체보기 (84)
    • [LG유플러스]유레카 SW (5)
    • React (20)
    • JS (17)
    • TypeScript (5)
    • CSS & HTML (1)
    • 알고리즘 (11)
    • JAVA (20)
    • GIT (1)
    • 자격증 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Node.js
  • join()
  • 타입변환
  • sort() 메서드
  • JavaScript
  • useCallback
  • 변수선언
  • ==
  • 자바스크립트
  • reverse() 메서드
  • toFixed
  • indexOf()
  • java
  • useMemo
  • java.lang패키지
  • do-while문
  • reduce
  • useEffect
  • 정적멤버
  • 혼자 공부하는 자바
  • 백준
  • map
  • match()
  • js
  • 혼자공부하는자바
  • 함수선언
  • 접근제한자
  • TypeScript
  • 기본api클래스
  • map() 함수
  • fillter
  • useRef
  • While문
  • 자바스트립트
  • 자바
  • 리액트
  • switch문
  • 인스턴스멤버
  • template literal
  • join() 메서드
  • break문
  • 노마드코더
  • 화살표함수
  • java.util패키지
  • 리액트를다루는기술
  • 템플릿리터럴
  • 타입스크립트
  • 코드스플리팅
  • useState
  • continue문

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
옝옹

냠

JS

[JS] == , === 차이점

2023. 1. 18. 18:33

Q. 알고리즘 문제를 푸는데 본인은 항상 "===" 을 사용했는데 한 문제에서 다른 사람들의 코드를 보니 "==" 을 사용된 것을 보고 두 문자의 차이가 궁금해짐

== 연산자

  • == 연산자는 두 피연산자의 값의 타입이 다를 경우 자동으로 일부 피연산자의 타입을 변환 후 값을 비교
  • 타입을 비교하지 않으므로 ===연산자에 비해 느슨함
123 == 123    // true
123 == '123'  
// true, 문자열을 숫자로 변환 후 값을 비교

true == 1   
// true, 두 피연산자에서 불리언 값이 존재하면, 불리언 값을 1로 변환 후 값을 비교

true == '1' 
// true, 불리언 값을 1로 변환 후 문자열 '1'을 숫자로 변환 후 값 비교

true == 'true' 
// false, 불리언 값을 1로 변환하면 1 == 'true'

null == undefined 
// true, null과 undefined는 엄연히 다르지만, == 연산자는 true를 반환

=== 연산자

  • === 연산자는 타입을 변환하지 않으므로 비교하는 방식이 엄격
    • 즉, 타입이 다르면 false를 반환
123 == 123    // true
123 == '123'  // false
true === 1  // false
true === 'true' // false
null === undefined // false
NaN === NaN // false
  • NaN값은 자기자신을 포함하여 어떠한 값과도 일치하지 않음
    • ===연산자에 NaN값이 존재하는 경우 항상 false
  • 정확한 문자열을 비교하기 위해서는 localeCompare 메서드를 사용하는 것이 좋음
    • 문자열은 눈으로 보았을 때 동일하더라도 인코딩 방식이 다르게 되어있을 수 있기 때문

 

  • 가급적으로 ==보다 ===를 쓰는 것이 좋다
    • 타입을 신경 쓰지 않고 비교를 하게 되는 ==는 원하지 않는 값 체크가 발생해도 판별하기가 어려움
    • 확실한 비교가 보장되는 === 를 쓰는 것을 권장함.
저작자표시 비영리 변경금지 (새창열림)

'JS' 카테고리의 다른 글

[JS] 배열의 순서 (sort()메서드, reverse() 메서드)  (1) 2023.02.03
[JS]BigInt  (0) 2023.01.31
[JS] 배열 특정 값 포함 여부(includes, indexOf, some, every)  (2) 2023.01.17
[JS] 배열에서 특정 값의 개수 구하기  (1) 2023.01.17
[JS] Templete Literal : 백틱(``), 달러(${})  (3) 2023.01.16
    'JS' 카테고리의 다른 글
    • [JS] 배열의 순서 (sort()메서드, reverse() 메서드)
    • [JS]BigInt
    • [JS] 배열 특정 값 포함 여부(includes, indexOf, some, every)
    • [JS] 배열에서 특정 값의 개수 구하기
    옝옹
    옝옹

    티스토리툴바