반응형
11-24 16:59
Today
Total
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
관리 메뉴

개발하는 고라니

[Javascript] '==' 와 '===' (동등 연산자와 일치 연산자) 본문

Languages/JS

[Javascript] '==' 와 '===' (동등 연산자와 일치 연산자)

조용한고라니 2020. 12. 8. 20:10
반응형

# ==

※ 동등 연산자로 좌항과 우항을 비교해서 서로 이 같다면 '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