프로그래밍에서 비교란 주어진 값들이 같은지, 다른지, 큰지, 작은지를 구분하는 것을 의미합니다. 이 때 비교 연산자를 사용하는데 비교 연산자의 결과는 true나 false 중의 하나입니다. true는 비교 결과가 참이라는 의미이고, false는 거짓이라는 뜻입니다. true와 false는 불린(boolean)이라고 불리는 데이터 형식인데 이것은 조건문에서 비중있게 다룰 것입니다. 아래는 주요한 비교 연산자들의 종류와 그에 따른 예제들입니다.
'==' 에 대해서 배워보겠습니다. 동등 연산자로 좌항과 우항을 비교해서 서로 값이 같다면 true 다르다면 false가 된다. '='가 두개인 것을 주의합시다. '='가 하나인 것은 대입 연산자로 우항의 값을 좌항의 변수에 대입할 때 사용하는 것으로 의미가 완전히 다릅니다.
alert(1==2) //false
alert(1==1) //true
alert("one"=="two") //false
alert("one"=="one") //true
'==='은 일치 연산자로 === 좌항과 우항이 '정확'하게 같을 때 true 다르면 false가 됩니다. 여기서 정확하다는 말의 의미에 집중합시다. 예제 코드를 보겠습니다.
alert(1=='1'); //true
alert(1==='1'); //false
위의 결과는 이상하다. '==='는 숫자 1과 문자 1을 다르게 인식한다. 반면에 '=='는 양쪽의 값을 같다고 판단합니다. 바로 이것이 '정확'의 의미입니다. 즉 ===는 서로 같은 수를 표현하고 있더라도 데이터 형이 같은 경우에만 같다고 판단하기 때문입니다. 결론부터 말하면 == 연산자 대신 === 연산자를 쓰는 것을 강력하게 권합니다. 몇가지 사례를 더 살펴보겠습니다.
alert(null == undefined); //true
alert(null === undefined); //false
alert(true == 1); //true
alert(true === 1); //false
alert(true == '1'); //true
alert(true === '1'); //false
alert(0 === -0); //true
alert(NaN === NaN); //false
null과 undefined는 값이 없다는 의미의 데이터 형이다. null은 값이 없음을 명시적으로 표시한 것이고, undefined는 그냥 값이 없는 상태라고 생각합시다. NaN은 0/0과 같은 연산의 결과로 만들어지는 특수한 데이터 형인데 숫자가 아니라는 뜻입니다.
#출처: 생활코딩(https://opentutorials.org/course/743/4722)
'JavaScript' 카테고리의 다른 글
[JavaScript] 반복문 (0) | 2019.05.23 |
---|---|
[JavaScript] 조건문 (0) | 2019.05.23 |
[JavaScript] 변수의 사용 (0) | 2019.05.23 |
[JavaScript] 숫자와 문자 (0) | 2019.05.23 |
[Javascript] 자바스크립트 Hello World (0) | 2019.05.23 |