JavaScript

undefined 타입

태인킴 2020. 4. 29. 21:14
반응형


 

JavaScript 의 원시 타입(primitive 타입) 은 다음과 같습니다.

- string

- number

- bigint

- boolean

- null

- undefined

- symbol

총 7가지의 원시 타입이 존재 합니다.

 

1. undefined 타입

이 중에서도 undefined 타입은 자바스크립트에서 많이 등장하면서도 가장 헷갈리는 타입 입니다.

특히나 undefinednull 타입과 가장 혼란스러운데요.

다른 프로그래밍 언어 에서는 null 타입은 있지만 undefined 라는 개념이 없는 언어가 많기 때문 입니다.

 

javaScript 의 undefined 타입은

1. 특정 변수의 값을 할당 하지 않았다면, 그 변수는 undefined 자료형 입니다.

2. 함수가 값을 명시적으로 반환하지 않으면 undefined 를 반환 합니다.

 

 

1. 특정 변수의 값을 할당 하지 않았다면, 그 변수는 undefined 자료형 입니다.

var x;
console.log(x);
// undefined 출력

 

우리는 변수를 선언하고 값을 할당하지 않아 종종 undefined 가 출력 되는 것을 확인 할 수 있습니다.

특히나 자바스크립트 처럼 동적 타입의 언어는 더욱 더 undefined 타입 체크를 열심히 해야 하는데요.

var x;
if (x === undefined) {}
// (===) 일치 연산자를 통한 비교

(==) 동등 연산자가 아닌 (===) 일치 연산자를 통해서 undefined 를 체크 할 수 있습니다.

(==) 동등 연산자를 사용 할 경우 undefined 뿐 만 아니라 null 타입 또한 true 를 반환 하기 때문 입니다.

var x;
if (typeof x === 'undefined') {}
// typeof 연산자를 통한 체크

typeof 연산자를 통해서도 체크 할수 있는데요.

이때 undefined 라는 문자열로 체크를 하셔야 합니다.

특히나 typeof 연산자를 사용 하면 변수를 선언하지 않았더라도 오류 없이 실행 가능 합니다.

if (typeof x === 'undefined') {}
// 오류 없이 실행
if (x === undefined) {}
// ReferenceError 오류 발생

 

 

2. 함수가 값을 명시적으로 반환하지 않으면 undefined 를 반환 합니다.

function test(){}
test();
// undefined 출력

우리는 종종 이런 실수를 합니다.

function validation(name){
    if(name == "test1"){
        return false;
    }

    if(name == "test2"){
        return false;
    }
}

validation("test3");
// undefined 출력

이 경우 반환값이 정해져 있지 않아 true 값을 반환 하는것이 아니라 undefined 를 반환 합니다.

function validation(name){
    if(name == "test1"){
        return false;
    }

    if(name == "test2"){
        return false;
    }
    
    return true;
}

validation("test3");
// true 출력

이런식으로 수정이 되어야겠죠?

 

자바스크립트의 (==) 형변환 비교, (===) 엄격한 비교 연산자에 대해 궁금 하신 분들은 이곳을 참고해 주세요~   https://coding-food-court.tistory.com/21

반응형

'JavaScript' 카테고리의 다른 글

JavaScript 배열과 유사배열(call)  (0) 2020.07.04
(==) 형변환 비교 (===) 엄격한 비교  (0) 2020.04.29
oninput onchange Event  (0) 2020.04.28
JSON.stringify JSON.parse  (0) 2020.04.26
json 생성 방법  (0) 2020.04.26