본문 바로가기

개발자 페이지/Javascript

Undefined, null 값 자바스크립트

728x90
반응형

값이 없음을 나타내는 자바스크립트 표현은 2가지로 

 

1.undefined : 값이 없을때 자바스크립트가 자동으로 부여하는 경우가 보통

사용자의 입력이 예상되는데 실제로 값이 없을 경우 undefined를 반환하게 된다.

 

사용자가 지정한 undefined는 하나의 값으로 동작하여 고유의 키값 프로퍼티가 존재하게 되나

자바스크립트 엔진이 자동으로 반환해주는 undefined는 배열의 키값 자체가 존재하지 않는다.

 

혼란을 피하기 위해서는 둘중 하나만 사용하는것이 편리하다.

즉, 자바스크립트 엔진이 직접 undefine을 반환하는 경우만 남겨두는 것이다.

비어있음을 나타내고 싶을때는 아래 null을 사용하면 된다.

 

2. null: 이 null 값은 애초부터 undefined를 대체하기 위한 '비어있음'을 나타내기 위한 용도로 쓰기 위해

만든 데이터 타입이다. 이렇게 하면 undefined의 정의를 사용자가 좀더 명확히 할 수가 있다.

 

*주의할 점: typeof null = object 이다. 

이것은 자바스크립트 자체 버그로 어떤 값이 null인지 여부를 알기위해서는 typeof 대신 다른 방법을 사용해야 한다.

 

a. 동등연산자 (equality operatior, == )

b. 일치연산자 (identity operator, === )

 

Javascript 데이터 타입은 기본형과 참조형이 있으며, 기본적으로 기본형은 불변값이고 참조형은 가변값이다.

 

1.기본형: 기본적으로 불변값

2.참조형: 가변값

3 변수(Variable): 변경 가능한 데이터가 담길 수 있는 공간

4. 식별자(identifier): 해당 변수의 이름

 

변수 선언 -> 메모리 빈공간 식별자 저장 -> 해당 공간에 undefined 할당 

이후 변수에 기본형 데이터를 할당하려고 하면 별도의 공간에 데이터를 저장하고 그 공간의 주소를 변수의 값 영역에 할당.

 

참조형 데이터를 가변값으로 여겨야 하는 상황에도 이를 불변값으로 사용하는 방법이 있으며, 이는 내부 프로퍼티를 일일이 복사하거나 라이브러리를 사용하면 된다. 불변 객체는 가장 중요한 개념 중 하나임.

 

728x90