반응형
11-24 16:59
- Today
- Total
Link
개발하는 고라니
[Javascript] '==' 와 '===' (동등 연산자와 일치 연산자) 본문
반응형
# ==
※ 동등 연산자로 좌항과 우항을 비교해서 서로 값이 같다면 'true' 다르면 'false'가 된다. '='의 개수에 따라 의미가 완전히 달라지니 주의하자.
alert(1 == 2) //false
alert(1 == 1) //true
alert(1 == '1') //true
alert("JS" == "JAVA") //false
alert("JS" == "JS) //true
* typeof 1 -> Number
* typeof '1' -> String
인데, true가 나온다. 데이터 타입에 관계없이 Value만 같으면 된다.
# ===
※ 일치 연산자로 좌항과 우항이 "정확"하게 같을 때 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는 그냥 값이 없는 상태라고 생각한다.
> 의도함 -> null
> 의도하지 않음 -> undefined
* NaN(Not a Number)은 0/0과 같은 연산의 결과로 만들어지는 특수한 데이터 형인데 숫자가 아니라는 뜻이다. (또는 계산할 수 없음 이라는 뜻)
< 본 내용은 '생활코딩' 유튜브를 참고하며 업로드 합니다. >
반응형
'Languages > JS' 카테고리의 다른 글
[Javascript] Drag & Drop 파일 업로드 (0) | 2021.04.27 |
---|---|
[Javascript] 이벤트 기반의 윈도우 프로그래밍 (0) | 2021.04.14 |
[JQuery] checkbox (0) | 2021.02.23 |
[Javascript] 문자열 찾기 (0) | 2021.01.04 |
[Javascript] 참조와 복제 (0) | 2020.12.09 |
Comments