<Today's Goals>
- undefined 와 null의 차이
- undefined 와 null 각자의 쓰임에 대해
<What i learned>
- undefined의 사용을 지양한다는 것을 서치를 통해 알게 되었다.
- null 또한 여러 오류를 유발하여 되도록 사용을 지양한다는 것도 알게 되었다. 이미 너무 널리 사용되어 이제와서 null를 사용하지 못하게 하면 여러가지 문제들이 발생해서 공식적으로는 사용이 제한되지 않았다.
<Questions>
- 실무에서 null을 사용해야하는 경우는?
undefined 와 null
undefined이란?
한줄 설명 : 변수를 선언하고 값을 할당하지 않은 경우.
상세설명
undefined는 변수를 선언하고 어떠한 값도 할당하지 않아서 자료형이 정해지지않은 상태. 값이 없는 empty 상태.
유지보수와 디버깅에 어려움이 있어서 최신 브라우저에서는 ECMAScript 5 명세에 따라 쓰기 불가한 속성.
전역 객체의 속성. 즉, 전역 스코프에서의 변수.
스코프란?
변수가 영향을 미치는 범위 또는 변수의 유효범위
- 전역스코프(Global Scope) : 블록 또는 함수의 밖에 선언 된 변수. 전역 스코프에서 변수를 선언하면 어떤 위치의 코드에서도 변수를 사용할 수 있다.
- 지역스코프(Local Scope) : 특정 부분에서만 사용가능하다. (함수 스코프, 블록 스코프)
undefined의 초기 값은 undefined 원시 값
함수는 값을 명시적으로 반환하지 않으면 undefined를 반환.
원시 값이란(primitive value)?
객체가 아니면서 메소드도 가지지 않는 데이터.
자바스크립트의 기본 타입인 5개를 원시 데이터라고 한다.
boolean, string, number, undefined, null
그렇다면 undefined는 언제 쓰일까?
undefined를 사용해 함수에 변수, 프로퍼티가 할당되었는지 확인할 수 있다.
일치, 불일치 연산자를 이용해 판별한다.
null 이란?
한줄 설명 : 의도적으로 값이 비어있는 상태
상세설명
아무런 객체를 가리키지 않음 혹은 객체가 없음을 의미.
null의 타입과 값 모두 null.
그렇다면 null는 언제 쓰일까?
null은 개발자가 명시적으로 '없음' 즉, 부재를 나타낼 때 사용.
API에서 종종 관련된 객체가 존재하지 않을 때 그 객체 대신 사용.
undefined과 null의 차이점
동등 연산자와 일치 연산자로 undefined과 null을 확인해보면 차이가 있다.
null === undefined; // false
null == undefined; // true
둘다 '값이 없음' 즉 empty의 상태이지만 없음으로 값을 지정하는 것과 값이 지정되지 않았다는 차이가 분명히 존재한다.
다만 둘다 부재를 나타낼때 쓸 수 있지만, 그런경우 굳이 null 또는 undefined를 쓰기보단 차라리 속성을 정의하지않는 방식을 더 선호한다.
'Language > JavaScript' 카테고리의 다른 글
JavaScript / button 스크롤 높이 따라 사라지고 나타나도록 하기 (0) | 2022.06.26 |
---|---|
JavaScript / 스코프(Scope)란? (0) | 2022.06.22 |
Javascript 반복문 while문 (0) | 2022.05.19 |
Javascript 반복문 for문 (0) | 2022.05.19 |
Javascript 조건문 if (0) | 2022.05.19 |