<div class="codetitle"> <span><a style="CURSOR: pointer" data="48356" class="copybut" id="copybut48356" onclick="doCopy('code48356')"><u>复制代码</u></a></span> 代码如下:</div> <div class="codebody" id="code48356"> <br> <br> <br> <br><meta http-equiv="content-type" content="text/html; charset=UTF-8"> <br><title>javascript之null和undefined</title> <br> <br> <br><script type="text/javascript"> <BR>/** <BR> ******************null关键字******************** <BR>JavaScript中的关键字null是一个特殊的值,它表示“无值”。null常常被看作对象类型的一个特殊值,即代表“无对象”的值。 <BR>null是一个独一无二的值,有别于其他所有的值。如果一个变量的值为null,那么就说明它的值不是有效的对象、数组、数字、字符串 <BR>和布尔值 中的 任何一种。 <BR>当null用于布尔环境时,它被自动转换为false.当它用于一个数字环境时,它被自动转换为数字0.当它用于一个字符串环境时,它 <BR>被自动转换为"null". <BR>*/ <BR>var $null = null; <BR>//用于布尔环境 <BR>if($null){ <BR>document.write("当null用于布尔环境时,不转换"); <BR>}else{ <BR>document.write("当null用于布尔环境时,它被自动转换为false");//此句将被输出 <BR>} <BR>//用于数字环境 <BR>if(0 + $null == 0){ <BR>document.write("<br/>当null用于数字环境时,它被自动转换为0");//此句将被输出 <BR>}else{ <BR> document.write("<br/>当null用于数字环境时,不转换"); <BR>} <BR>//用于字符串环境 <BR>document.write("<br/>用于字符串环境:"+$null);//null <BR>//null的typeof:object <BR>document.write("<br/>$null的数据类型为:"+typeof $null);//object <BR>/** <BR>*****************undefined****************** <BR>undefined是一个特殊的值,它不是javascript中的关键字。以下几种情况需要注意: <BR>1.使用了已经声明但还没有赋值的变量时 <BR>2.使用了一个并不存在的对象属性时 <BR>以上二种情况,返回的都是undefined这个值。undefined值不同于null. <BR>当未定义的值用于布尔环境时,它会自动转换为false; <BR>当它用于一个数字环境时,它会自动转换为NaN;(NaN的解释:NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。 <BR>当它用于一个字符串环境时,它会自动转换为"undefined"; <BR>*/ <BR>var $aaa;//声明了,但没有初始化。 <BR>var $bbb = "测试";//声明了,并且初始化了。 <BR>var $obj = new Object(); <BR>document.write("<br/>$aaa的类型:"+typeof $aaa+"、$aaa的值:"+$aaa);//undefined、undefined <BR>document.write("<br/>$bbb的类型:"+typeof $bbb+"、$bbb的值:"+$bbb);//string、测试 <BR>document.write("<br/>$obj的一个不存在的属性myProp的类型:"+typeof $obj.myProp+"、$obj.myProp的值:"+$obj.myProp);//undefined、undefined <BR>//document.write("<br/>输出一个并未声明的变量的值:"+$abc);//运行错误 <BR>/** <BR>undefined 与 null的联系 <BR>虽然undefined和null值不同,但是==运算符却将两者看作相等。 <BR>var obj = new Objec(); <BR>obj.prop == null //返回true <BR>如果要严格区分undefiend和null,则需要用到====运算符或者typeof <BR>var obj = new Objec(); <BR>obj.prop === null //返回false <BR>typeof obj.prop //输出undefined <BR>typeof null //输出object <BR>*/ <BR></script> <br> <br> <br> </div>