inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

프로그래밍 시작하기 : 웹 입문 (Inflearn Original)

실습: 회원가입 폼 검증하기 - 2 (3-21)

!= 과 !==의 차이

해결된 질문

331

작성자 없음

작성한 질문수 0

0

if (passwordConfirmInput.value !== passwoedInput.value) 

에서 !=가 아닌 !==를 쓴 이유는 무엇이고,

!=와 !==의 차이는 무엇인가요?

javascript HTML/CSS

답변 1

0

itjustbong

안녕하세요 
최도영님!

==(!=) 는 값만 비교를 합니다.

반면에, ===(!==) 은 값을 비교하는 것은 물론이고, 타입(문자열인지 숫자인지 등에 대해)에 대해서도 비교를 합니다.

예를들어서 

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 !==" 정도로 간단하게 검색하실 수 있습니다.

질문에 대한 답변이 되었기를 바랍니다.

감사합니다.

unregistered 이라 뜨며 작동하지 않습니다.

0

50

1

공부한 내용을 블로그에 정리해서 올려도되나요?

0

94

1

sublime text 설치 불가

0

176

1

사진과 본문 내용에 패딩이 40px 들어가 있는데 이유를 모르겠습니다

0

98

1

처음 질문과 옵션 관련 질문입니다.

0

89

1

마지막에 news 관련 질문

0

81

1

태그 닫는 단축키가 뭔가요?

0

169

1

강의에 사용하는 예제 코드 자료 있나요?

0

384

1

회원가입 폼 검증하기 실행이 안됩니다.

0

274

1

이미지랑 아이콘 파일을 어떻게 찾아요?

0

351

1

VS 코드는 절대 경로랑 상대 경로로 상위 문서 접근이 차단되어 있네요

0

475

0

프로젝트 고민 해결이 안되어 다시 올립니다.

0

392

1

프로젝트 고민 다시올립니다.

0

446

1

친구와의 프로젝트 고민

0

419

1

화면 오른쪽 스크롤이 넘어가질 않아요!

0

515

1

학과 설정

0

329

2

회원가입폼 검증 -2 에서 문제가생겼습니다

0

329

1

card.html 버튼 위치

0

601

1

인스타그램 코드 작성 후 동작을 해보았는데 버튼을 눌러도 넘어가질않네요

0

355

2

carousel의 footer부분에

0

293

1

margin 값에 관한 질문입니다.

0

406

1

function clearMessages() 함수의 원리를 알고싶습니다

0

319

1

removeEventListener

0

235

1

버튼을 눌렀을때 케러셀의 이동

0

809

2