작성자 없음
작성자 정보가 삭제된 글입니다.
해결된 질문
작성
·
251
0
if (passwordConfirmInput.value !== passwoedInput.value)
에서 !=가 아닌 !==를 쓴 이유는 무엇이고,
!=와 !==의 차이는 무엇인가요?
답변 1
0
안녕하세요
최도영님!
==(!=) 는 값만 비교를 합니다.
반면에, ===(!==) 은 값을 비교하는 것은 물론이고, 타입(문자열인지 숫자인지 등에 대해)에 대해서도 비교를 합니다.
예를들어서
var x = 1; //x는 1입니다
if(x == 1) //결과는 참입니다.
if(x == "1") //결과는 참입니다.
if(x === 1) //이또한 결과는 참입니다.
하지만, if(x === "1") 이 결과는 거짓입니다.
왜냐하면 x는 1이라는 정수 형태의 데이터 타입을 가지고 있고, "1"는 문자열이라는 데이터타입을 가지고 있기 때문입니다.
이러한 특성때문에
== (이중연산자)는 abstract 비교 연산자,
===(삼중연산자)는 strict 비교 연산자 라고도 합니다.
해당 코드에서는 input에서 받아온 비밀번호를 비교하는 것이기 때문에
!== 가 아닌 != 를 작성해도 작동은 잘 됩니다.(input에서 가져와서 비교하려는 2개의 값은 같은 데이터 타입이기 때문에)
다만, 사용자가 어떠한 값을 넣을지 모르며,
안정성을 위해서 혹은 혹시 모를 오류를 위해서,
값과 형식을 비교하는 ===(삼중연산자)를 사용하는 것이 더 안전하고 좋은 방법이라고 생각합니다!
구글링 키워드를 첨부하자면, "js != vs !==" 정도로 간단하게 검색하실 수 있습니다.
질문에 대한 답변이 되었기를 바랍니다.
감사합니다.