-
[JS] 자바스크립트에서 ==과 ===의 차이Frontend 2019. 2. 24. 11:36
자바스크립트 프로그래밍을 할 때 =과 ==, ===을 많이 쓰게 되는데 과연 이 셋의 차이는 뭘까?
1. =
=는 값을 대입할 때 사용한다.
var x = 1 var y = 2 var z = x+y
x라는 변수에 1이라는 숫자를 할당할 때,
z라는 변수에 x+y를 할당할 때
이런 경우에는 = 을 사용한다.
즉, 오른쪽에 쓴 값을 왼쪽에 할당할 때 쓴다.
2. ==, ===
==과 ===은 조건식에서 사용한다.
어떤 것이 같은지 판별할 때 사용하는 것이다.
if (x == 1) { return true }
만약 x가 1이라면 true를 리턴해라.
여기서 "x가 1이라면"이라는 조건을 걸 때 == 이나 ===을 사용할 수 있다.
3. ==과 ===의 차이는?
==은 값만 비교하지만 ===은 값과 타입을 같이 비교한다.
예를 들어서 다음의 예시를 들 수 있다.
if(undefined == null) { console.log(true); // true } else { console.log(false); } if(undefined === null) { console.log(true); } else { console.log(false); // false }
undefined와 null을 비교할 때 ==을 사용하면 true가 출력된다.
왜냐면 둘 다 빈값이기 때문이다.
그러나 ===을 사용하면 값 뿐만 아니라 type까지 비교하게 되는데
undefined는 undefined타입이나 null은 object타입이므로 둘은 같지 않다고 판별되어 false가 출력된다.
if("10" == 10) { console.log(true); // true } else { console.log(false); } if("10" === 10) { console.log(true); } else { console.log(false); // false }
위의 경우에서도 "10"과 10은 값이 같으므로 ==을 사용했을 때 true가 출력되지만
"10"은 string 타입, 10은 number 타입이므로 ===을 사용했을 때는 false가 출력된다.
4. 조건식에서 같지 않다는 것을 표현할 때는 != 또는 !==을 사용한다.
if (b != 2) { return false }
==와 ===의 반대 개념으로 != 또는 !==을 사용할 수 있다.
반응형'Frontend' 카테고리의 다른 글
[JS/DOM] 바닐라 자바스크립트로 select태그 option 동적으로 생성, 삭제하기 / 특정 옵션 선택하기 (2) 2019.03.24 [JS/DOM] 바닐라 자바스크립트로 테이블 행 삭제 버튼 구현하기 (2) 2019.03.24 [jQuery] 제이쿼리 5일차 요점정리 (0) 2019.02.17 [jQuery] 제이쿼리 4일차 요점정리 (0) 2019.02.17 [jQuery] 제이쿼리 3일차 요점정리 (0) 2019.02.17 COMMENT