본문 바로가기
JavaScript

JavaScript, == 와 ===의 차이, undefined 와 null의 차이

by nacjji 2022. 11. 18.
일치 연산자 == 와 ===

- 둘 다 두 값을 비교하는 일치 연산자지만, 큰 차이가 있다.

console.log(1 == "1")
console.log(1 === "1")
→ true
    false

- 일치연산자를 사용해 숫자 1과 숫자로 된 문자열 "1" 을 비교했다. 

- == 을 사용한 결과는 true, ===을 사용한 결과는 false인데, 그 이유는 ==은 두 자료의 자료형이 다르면 강제 형변환을 해서 비교 연산 전의 같은 자료형으로 바꾼 뒤 연산을 수행하기 때문에 true 가 나온 것이고, === 은 두 자료형의 자료형 type 과 값을 비교해 연산을 수행해 false 나온 것이다.

 

 

- undefined 와 null 모두 값이 없다는 상태를 나타낸다.

- 두 값을 비교해보자

const nullData = null
const undefinedData = undefined

console.log(nullData == undefinedData)
console.log(nullData === undefinedData)
→ true
    false

- 두 값을 비교하자 == 에서는 true, ===에서는 false 가 출력됐다. 

- undefined 는 변수나 함수를 선언했으나, 값이나 인수가 주어지지 않은 경우에 자동으로 할당된다. 

- null 은 변수나 함수를 선언하고, 의도적으로 값을 할당하지 않아 비어있다는 것을 나타낸다.

- 결론은 undefined는 값이 지정되지 않은 경우를 의미하지만, null의 경우에는 해당 변수나 함수가 어떤 객체도 가리키고 있지 않다는 것을 의미한다.