(9) JavaScript - 자료형 / null & undefined

반응형

자료형 데이터 타입에서 String(문자열), Number(숫자), Boolean(불린) 외에도

null 과 undefined라는 자료형도 있다.

자바스크립트에서는 둘 다 '값이 없다' 라는 같은 의미를 가지고 있으며 쓰임에 차이가 있다.

 

null & undefined

간단하게 두 차이를 설명하자면

null은 '값이 없다'는 것을 의도적으로 표현할 때 사용하고

undefined는 우리가 직접 값을 표현하기보다 코드를 실행하면서 '값이 없다' 라는 것을 확인 할 수있는 것이다.

그 예시를 한번 살펴보자

 

    let SeopE
    console.log(SeopE);

 

▲먼저 SeopE라는 변수를 만들어주고 

아무런 값도 넣어 주지 않은 채 콘솔에 SeopE을 출력해봤다.

 

undefined 라는 값을 확인 할 수있는데

자바스크립트에서는 값이 주어지지 않은 변수에는 기본적으로 undefined 값을 가지고 있다.

다시 말해서 undefined는 선언을 한 다음 값을 정해주지 않았다는 것을 의미한다.

 

그리고 의도적으로 비어 있는 값을 표현하고 싶을 때는 'null' 이라는 값을 넣어준다.

    let SeopE
    console.log(SeopE);

    SeopE = null
    console.log(SeopE);

 

다시 말해서 null은 의도적으로 '없다' 라는 의미의 값을 지정할 때 사용하는 자료형이다.

 

의미는 모두 '값이 없다' 라는 걸 표현하는 것이지만 코드를 작성할 때 선언만 하고 아무런 것도 지정하지 않은 것인지 

혹은 '값이 없음'을 의도적으로 표현한 것인지가 이 둘을 구분하는 가장 큰 차이점이라고 할 수있다.

 

▼ null과 undefined 비교

    console.log(null == undefined);
    console.log(null === undefined);

 

동등 비교(==)일 때는 둘 다 비슷한 의미를 가지고 있어서 true가 출력 되지만

일치 비교 (===)일 때는 두 값이 서로 다른 자료형이기 때문에 false가 출력된다.

 

null & undefined 예시

 

코드 이해를 돕기위해 컵과 물이라는 변수를 사용하였다

    let cup
    console.log(cup); //undefined
    cup = "물"
    console.log(cup); // 물
    cup = null
    console.log(cup); //null

 

.

    let cup
    console.log(cup); //undefined

 

▲ 처음부터 아무것도 없던 빈 컵을 가져온 것이기 때문에 컵의 상황은 undefined 라고 볼 수있다.

 

    cup = "물"
    console.log(cup); // 물

▲ 그러고 나서 이제 컵에 물을 받는데,

컵이라는 변수에 물이라는 값을 넣어주는 것으로 표현해 볼 수가 있다.

 

    cup = null
    console.log(cup); //null

 

▲ 마지막으로 물을 마시며 컵이라는 변수에 null 이라는 값으로 비워준다는 의미로 표현하였다.


 

쉽게 이해하기위해 예시를 들었을 뿐이고 

실제로 코드를 작성하다 보면 훨씬 더 다양한 상황에서 null과 undefined를 볼 수 있을 것이다.

어떤 상황에서건 일단 null은 '의도적으로 없음을 포현' 하는 값이고

undefined는 '처음부터 아무것도 없었다' 는 것을 알려주는 값이라는 것이라고 이해하자.


★ GitHub 주소 (null & undefined)

https://github.com/SeopE9611/JavaScript_soloPlay/blob/main/Basic/5-%EC%9E%90%EB%A3%8C%ED%98%95/8.null%2Cundefined.html

 

JavaScript_soloPlay/Basic/5-자료형/8.null,undefined.html at main · SeopE9611/JavaScript_soloPlay

Contribute to SeopE9611/JavaScript_soloPlay development by creating an account on GitHub.

github.com

 

반응형