티스토리 뷰

Web/javascript & jQuery

[javascript] null / undefined / empty

구글링쟁이 k9e4h 2016.08.11 22:17

javascript null,undefined,empty 확인 방법



1. 배열이 비어있는지 확인 할때

1
if!array.length )
cs



2. 배열에 뭔가가 들어있는지 확인 할때

1
if( array.length )
cs



3. 문자열이 비어있는지 확인할때

1
if(!string)
cs

// undefined, null 모두 포함


4.어떤 참조 변수가 false인지 판정할 때는 다음처럼 작성하지 마시고:

1
if ( foo === false )
cs


true인지를 확인하도록 부정(!)을 사용하세요.

1
if ( !foo )
cs


이렇게하면 foo의 값이 0, “”, null, undefined, NaN인 경우에도 참을 반환할 겁니다.


foo가 불린값 false를 갖는지를 확인하는 경우라면, 아래와 같이 사용하세요.

1
if ( foo === false )
cs



5. 어떠한 변수 foo의 값은 null이나 undefined일 수는 있지만 false나 "", 또는 0의 값은 가지지 않습니다. 이런 변수를 판정할 때에는 아래처럼 작성하지 마시고:

1
if ( foo === null || foo === undefined ) 
cs


강제형변환되는 ==를 사용하세요. 다음과 같이요:

1
if ( foo == null )
cs


== 를 사용하면, 판정하려는 변수의 값이 `null` 이나 `undefined` 일 때, 참을 반환할 것입니다.

하지만 `false` 나 "" 나 0 값을 가질 때에는 거짓을 반환할 것입니다.

1
null == undefined
cs



출처 [http://blog.netchk.net/?p=486]


http://www.deadfire.net/jscript/projscript006.html


javascript null,undefined,empty 차이



undefined -> 변수를 선언만 하고 값을 할당하지 않음.

즉, 자료형이 결정되지 않은 상태이다.

(선언하지 않은 변수도 콘솔이나 기타 메세지에는 undefined라고 뜨지만,

undefined라는 값을 가지는 것은 아니다.) 

null -> 변수를 선언하고, 'null'이라는 빈 값을 할당한 경우이다.

(이 '빈 값'의 경우 자료형에 따라 여러가지가 있지만,

null은 객체형 데이터-ex: array, object-의 빈 값을 의미한다.

문자열(string)의 경우 '', 숫자(number)의 경우 0이 빈값이고,

이들 빈값 모두는 if문에서 false로 형 변환된다.)


다시말해서, undefined는 자료형이 결정되지 않은 변수이고,


null은 자료형은 객체인데, 비어있는 변수이다.


++추가


-------------

이 글을 본 지인이 왜 그러면 console.log(undefined==null)이 true냐고 반박을 해서


글을 추가합니다. 


비교연산자 ==는 자료형이 다르면 자동 형변환으로 자료형을 강제로 맞춰서 비교하는 비교연산자입니다.


undefined와 null(object)은 자료형이 다르니 자바스크립트 엔진에서 알아서 통일해서 둘다 값이 없는거니까


true를 반환합니다. 이 경우 === 연산자(자료형까지 비교)를 사용하면 원하는 결과를 얻을 수 있습니다.


javascript에서 false가 return 되는 것

””             (빈 문자열) 
NaN          (Not a Number) 
undefined  (정의되지 않은 값) 
null           (Null값) 
false         (기본 boolean false) 
0              (숫자 0)



'Web > javascript & jQuery' 카테고리의 다른 글

javascript module require()  (0) 2016.08.16
javascript와 jquery의 차이  (0) 2016.08.11
[javascript] null / undefined / empty  (0) 2016.08.11
javascript array의 function들  (0) 2016.08.11
let const 차이  (0) 2016.08.10
Object.keys()  (0) 2016.08.10
댓글
댓글쓰기 폼