JavaScript中isNaN函数
JavaScript中isNaN函数方法是返回一个 Boolean 值,指明提供的值是否是保留值 NaN 。
使用方法:isNaN(numValue)
其中必选项 numvalue 参数为要检查是否为 NAN 的值。

如果值是 NaN, 那么 isNaN 函数返回 true ,否则返回 false 。 使用这个函数的典型情况是检查 parseInt 和 parseFloat 方法的返回值。还有一种办法,变量可以与它自身进行比较。 如果比较的结果不等,那么它就是 NaN 。 这是因为 NaN 是唯一与自身不等的值。

注意:NaN “Not a Number”。出现这个数值比较少见,以至于我们可以不理它。当运算无法返回正确的数值时,就会返回“NaN”值。NaN 值非常特殊,因为它“不是数字”,所以任何数跟它都不相等,甚至 NaN 本身也不等于 NaN 。
isNaN是个函数,它计算一个参数,检查它是否为数值。

[html]
null 意指『沒有值』。被当做一个对象(object)。 
如:取得一个不存在的dom对象 null === document.getElementById('notExistElement');  

<script type="text/javascript"> 
    alert(typeof(unll));//object
</script>

undefined
有以下两种情况会被视为undefined:
  1. 一个变量没有被声明,(程序报错)
  2. 声明的变量没有被赋值。(object)。 

<script type="text/javascript"> 
    alert(typeof(undefined));//undefined
</script>

<script type="text/javascript"> 
    var objNull = null;
    var objUndef = undefined;

    alert(objNull);//null
    alert(objUndef); //undefined

    alert(objNull + objUndef);//NaN
</script>

<script type="text/javascript">
    alert(objNull + 123); //123
    alert(objNull + "123");//null123
    alert(objUndef + 123); //NaN
    alert(objUndef + "123");//defined123
</script>

<script type="text/javascript">
    var objDeclare;
    alert(objUnDeclare);//出错:提示objUnDeclare没有被定义
    
    alert(objDeclare);//undefined
    alert(typeof(objDeclare));//undefined
    alert(typeof(objUnDeclare));//undefined
</script>


if(!$) {   
     function $(sid) {return document.getElementById(sid);}   
}              

这段代码的作用是如果已经引入prototype中的$定义,就不再定义,否则使用自己定义的。但是在FF下确出现了问题。
可能是FF下对未定义的变量直接做错误处理,而IE则会进行自动的类型转换,也就是说如果系统中没有定义$那么!$就会被转换为true。这又是ie为兼容性做的事,但同样,大家不领情的认为它不符合标准。。。

如果想让它正常运行只有这样

if(typeof $==='undefined') {   
     function $(sid) {return document.getElementById(sid);}   
}      

备忘一下。。。

typeof NaN ==='number'
typeof undefined ==='undefined'
typeof null==='object'

ECMAScript认为undefined是从null派生出来的,所以把它们定义为相等的。但是,如果在一些情况下,我们一定要区分这两个值,那应该怎么办呢?可以使用下面的两种方法。

   1.  alert(null === undefined); //output "false"  
   2. alert(typeof null == typeof undefined); //output "false"  

null与undefined的类型是不一样的,所以输出"false"。
而===代表绝对等于,在这里null === undefined输出false。

[/html]