본문 바로가기
개발/Javascript, ECMAScript

[javascript] javascript 에서 null 체크

by 언제나초심. 2019. 2. 21.
반응형

우선적으로, 자바스크립트에서 null 과 아예 없는 것은 조금 다르다고 한다.



이런 이유로 브라우저 마다 체크 결과가 다르기도 했었다. (브라우저 개발사마다 이해를 다르게 한 까닭에...)


null 은 값이 없는 상태,

undefined 는 변수는 선언했으나 값을 할당하지 않은 상태.

예를 들어, 변수가 생성된 이후에, null 값을 대입할 수 있지만 undefined 를 대입할 수는 없다. 





if (typeof a == "undefined")


if (a == undefined)


if (a == null)





대체적으로는 ( a === undefined ) 와 (typeof a == "undefined") 는 같은 의미로 생각된다.

(주의 : 그러나 현대에 들어서는 조금 다른 의미로 생각한다.)


(x === undefined)

: 변수 (객체)가 선언 되었으나, 값이 설정되지 않은 경우. (x의 값이 'undefined' 라는 의미)



(typeof x === undefined)

: 변수 자체도 선언도 안 된 상태. (x 의 형태(type) 조차도 'undefined' 라는 의미)



== == 와 === 의 차이 ==

: === 는 타입까지 동일한지 비교한다. (값도 동일 + 타입도 동일)



예시 1)

* "123.2" == 123.2 : true

* "123.2" === 123.2 : false



예시 2)

* undefined == null : true

* undefined === null : false



조금 쉽게 설명하자면, 자바스크립트에서는 == 를 '유연한 비교' 라고 생각하면 된다. === 는 다른 언어에서 쓰이는 다소 '빡빡한 equal 비교' 라고 생각하면 된다.



typeof 종류

* undefined

* object

* boolean

* number

* string

* function

* symbol

반응형