null和undefined之间的不同确实有点难区分,下面我把我所理解的部分写下来。
null关键字表示“没有值”也就是“什么都没有”,既不是一个空字符也不是数字0。null能够用来初始化一个变量或者用来清除一个变量的值以便这个变量不包含任何值,同时被变量占有的内存空间被清除。当变量赋值为null时,变量将不包含任何有效的数据类型。null是Flash的一种对象。
var a:Number = 3;
trace(typeof(a)); //输出Number
a = null;
trace(typeof(a)); //输出null
当一个变量被定义但是没有给任何初始值时,这个变量包含的值为undefined。另外undefined在flash里并不是一个关键字。如果你使用 == (等于)操作符会发现它们相等,但是当使用 === (全等)操作符时它们不相等。
trace(null == undefined); //输出true
trace(null === undefined); //输出false