javascript權威指南 學習筆記之null和undefined

來源:互聯網
上載者:User

複製代碼 代碼如下:
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>javascript之null和undefined</title>
</head>
<body>
<script type="text/javascript">
/**
 ******************null關鍵字********************
JavaScript中的關鍵字null是一個特殊的值,它表示“無值”。null常常被看作物件類型的一個特殊值,即代表“無對象”的值。
null是一個獨一無二的值,有別於其他所有的值。如果一個變數的值為null,那麼就說明它的值不是有效對象、數組、數字、字串
和布爾值 中的 任何一種。
當null用於布爾環境時,它被自動轉換為false.當它用於一個數字環境時,它被自動轉換為數字0.當它用於一個字串環境時,它
被自動轉換為"null".
*/
var $null = null;
//用於布爾環境
if($null){
document.write("當null用於布爾環境時,不轉換");
}else{
document.write("當null用於布爾環境時,它被自動轉換為false");//此句將被輸出
}
//用於數字環境
if(0 + $null == 0){
document.write("<br/>當null用於數字環境時,它被自動轉換為0");//此句將被輸出
}else{
   document.write("<br/>當null用於數字環境時,不轉換"); 
}
//用於字串環境
document.write("<br/>用於字串環境:"+$null);//null
//null的typeof:object
document.write("<br/>$null的資料類型為:"+typeof $null);//object
/**
*****************undefined******************
undefined是一個特殊的值,它不是javascript中的關鍵字。以下幾種情況需要注意:
1.使用了已經聲明但還沒有賦值的變數時
2.使用了一個並不存在的對象屬性時
以上二種情況,返回的都是undefined這個值。undefined值不同於null.
當未定義的值用於布爾環境時,它會自動轉換為false;
當它用於一個數字環境時,它會自動轉換為NaN;(NaN的解釋:NaN 屬性是代表非數字值的特殊值。該屬性用於指示某個值不是數字。
當它用於一個字串環境時,它會自動轉換為"undefined";
*/
var $aaa;//聲明了,但沒有初始化。
var $bbb = "測試";//聲明了,並且初始化了。
var $obj = new Object();
document.write("<br/>$aaa的類型:"+typeof $aaa+"、$aaa的值:"+$aaa);//undefined、undefined
document.write("<br/>$bbb的類型:"+typeof $bbb+"、$bbb的值:"+$bbb);//string、測試
document.write("<br/>$obj的一個不存在的屬性myProp的類型:"+typeof $obj.myProp+"、$obj.myProp的值:"+$obj.myProp);//undefined、undefined
//document.write("<br/>輸出一個並未聲明的變數的值:"+$abc);//運行錯誤
/**
undefined 與 null的聯絡
雖然undefined和null值不同,但是==運算子卻將兩者看作相等。
var obj = new Objec();
obj.prop == null //返回true
如果要嚴格區分undefiend和null,則需要用到====運算子或者typeof
var obj = new Objec();
obj.prop === null //返回false
typeof obj.prop //輸出undefined
typeof null //輸出object
*/
</script>
</body>
</html>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.