日期:2014-05-16  浏览次数:20368 次

理解js中的:Null、undefined、""、0、false
总结:

1、undefined、null、""、0、false这五个值在if语句中做判断,都会执行false分支
2、    undefined和null比较特殊,
    虽然null的类型是object,但是null不具有任何对象的特性,
    就是说我们并不能执行null.toString()、null.constructor等对象实例的默认调用。
    所以从这个意义上来说,null和undefined有最大的相似性。
    ★★看看null == undefined的结果(true)也就更加能说明这点。
    不过相似归相似,还是有区别的,
    就是和数字运算时,10 + null结果为:10;10 + undefined结果为:NaN。
3.""、0和false虽然在if语句表现为"假值",可它们都是有意义数据,只是被作为了"空值"或"假值"
因为:★★"".toString(),(0).toString()和false.toString()都是合法的可执行表达式。

4.当尝试读取不存在的对象属性时也会返回 undefined。
提示:只能用 === 运算来测试某个值是否是未定义的,因为 == 运算符认为 undefined 值等价于 null。
注释:null 表示无值,而 undefined 表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性。

-----------------------------------------------

书籍资料:

《JavaScript核心技术》机械工业出版社 2007年6月 第一版第一次印刷

0、""、NaN、null和defined都是假的 。剩下的东西都是真的。

换句话说,零、null、NaN和空字符串天生就是假 ;而其他的天生就是真 。

================================================

测试实例:

<html>
<head>
    <TITLE>解决Null 和 undefined 等问题</TITLE>
    <script type= "text/javascript" >
   
     var  str= "How are you doing today?"
   
    document.write(str.split( " " ) +  "<br />" )
    document.write(str.split( "" ) +  "<br />" )
    document.write(str.split( " " ,3))
   
  /**
    * 这里有一题目:JS中,如何判断一个对象的值是不是NULL?
    *
        解:
        if(!obj||obj=='null'||typeof(object)=="undefined"))  
          {  
                    alert('NULL');  
           
          } 
         
    网络资源路径:
    http://topic.csdn.net/t/20031230/12/2617647.html
    *
    *
    */
   
   
   
   
   
     //=============================================================================
     //各种类型
     //_____________________________________________________________________________
    document.write( "<br>" );
    document.write( "各种类型:" );
    document.write( "<br>" );
     if ( null  == undefined){document.write( "<br><br> null == undefined 为ture<br>" )}
     if ( typeof (undefined) ==  'undefined' )document.write( "typeof(undefined) == 'undefined'为true<br>" );
     if ( typeof ( null ) ==  'object' ){document.write( "typeof(null) == 'object'为ture<br>" )}
     if ( typeof ( "" ) ==  'string' )document.write( "typeof(\"\") == 'string'为true<br>" )
     if ( typeof (0) ==  'number' ){document.write( "typeof(0) == 'number'为true<br>" )}
     if ( typeof ( false ) ==  'boolean' ){document.write( "typeof(false) == 'boolean'为true<br><br>" )}
     /*
    以上段运行结果: