JavaScript中有两个表示“空”的值,分别是Undefined和null;

(1)Undefined  
定义了一个全局变量,它的值是 undefined,这个变量也被称为undefined。 但是这个变量不是一个常量,也不是一个关键字。这意味着它的值可以轻易被覆盖。
ES5 提示: 在 ECMAScript 5 的严格模式下,undefined 不再是可写的了。 但是它的名称仍然可以被隐藏,比如定义一个函数名为 undefined。

下面的情况会返回 undefined 值:
访问未修改的全局变量 undefined。
由于没有定义 return 表达式的函数隐式返回。
return 表达式没有显式的返回任何内容。
访问不存在的属性。
函数参数没有被显式的传递值。
任何被设置为 undefined 值的变量。

null 的用处
JavaScript 中的 undefined 的使用场景类似于其它语言中的 null,实际上 JavaScript 中的 null 是另外一种数据类型。
它在 JavaScript 内部有一些使用场景(比如声明原型链的终结 Foo.prototype = null,又比如在删除DOM0级方法指定的事件处理程序时,
将事件处理程序属性的值设置为null即可,btn.onclick=null),但是大多数情况下都可以使用 undefined 来代替。

JS判断Undefinde
typeof 返回的是字符串,有六种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined"

以下是正确的用法:

  var exp = undefined;
  if (typeof(exp) == "undefined")
  {
  alert("undefined");
  }


JS判断null
JavaScript 中没有 isNull 这个函数。

以下是正确的用法:

  var exp = null;
  if (!exp && typeof(exp)!="undefined" && exp!=0)
  {
  alert("is null");
  } 


js混淆加密
可以保护JS代码,让js代码不能被他人随便使用,对于重要的代码,有必要用混淆加密的方法保护。国内最好的js混淆加密平台:JShaman(http://www.jshaman.com/