var TestVar;
 alert(TestVar); //shows undefined
 alert(typeof TestVar); //shows undefined
null할당 값입니다. 변수에 값이없는 표현으로 할당 될 수 있습니다.
 var TestVar = null;
 alert(TestVar); //shows null
 alert(typeof TestVar); //shows object
앞의 예에서, 분명하다 undefined그리고 null두 가지 유형은 다음과 같습니다 undefined유형 자체는 (정의) 동안은 null객체입니다.
 null === undefined // false
 null == undefined // true
 null === null // true
 null = 'value' // ReferenceError
 undefined = 'value' // 'value'


if (typeof(value) !== "undefined" && value)
or
if (typeof value  !== "undefined" && value)

function typeOf (obj) {
  return {}.toString.call(obj).split(' ')[1].slice(0, -1).toLowerCase();
}
Results:
typeOf(); //undefined
typeOf(null); //null
typeOf(NaN); //number
typeOf(5); //number
typeOf({}); //object
typeOf([]); //array
typeOf(''); //string
typeOf(function () {}); //function
typeOf(/a/) //regexp

 /**
   * Checks if `value` is empty. Arrays, strings, or `arguments` objects with a
   * length of `0` and objects with no own enumerable properties are considered
   * "empty".
   *
   * @static
   * @memberOf _
   * @category Objects
   * @param {Array|Object|string} value The value to inspect.
   * @returns {boolean} Returns `true` if the `value` is empty, else `false`.
   * @example
   *
   * _.isEmpty([1, 2, 3]);
   * // => false
   *
   * _.isEmpty([]);
   * // => true
   *
   * _.isEmpty({});
   * // => true
   *
   * _.isEmpty('');
   * // => true
   */

function isEmpty(value) {
    if (!value) {
      return true;
    }
    if (isArray(value) || isString(value)) {
      return !value.length;
    }
    for (var key in value) {
      if (hasOwnProperty.call(value, key)) {
        return false;
      }
    }
    return true;
  }

출처 : http://stackoverflow.com/