javascript權(quán)威指南 學(xué)習(xí)筆記之null和undefined
<!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關(guān)鍵字********************
JavaScript中的關(guān)鍵字null是一個(gè)特殊的值,它表示“無值”。null常常被看作對(duì)象類型的一個(gè)特殊值,即代表“無對(duì)象”的值。
null是一個(gè)獨(dú)一無二的值,有別于其他所有的值。如果一個(gè)變量的值為null,那么就說明它的值不是有效的對(duì)象、數(shù)組、數(shù)字、字符串
和布爾值 中的 任何一種。
當(dāng)null用于布爾環(huán)境時(shí),它被自動(dòng)轉(zhuǎn)換為false.當(dāng)它用于一個(gè)數(shù)字環(huán)境時(shí),它被自動(dòng)轉(zhuǎn)換為數(shù)字0.當(dāng)它用于一個(gè)字符串環(huán)境時(shí),它
被自動(dòng)轉(zhuǎn)換為"null".
*/
var $null = null;
//用于布爾環(huán)境
if($null){
document.write("當(dāng)null用于布爾環(huán)境時(shí),不轉(zhuǎn)換");
}else{
document.write("當(dāng)null用于布爾環(huán)境時(shí),它被自動(dòng)轉(zhuǎn)換為false");//此句將被輸出
}
//用于數(shù)字環(huán)境
if(0 + $null == 0){
document.write("<br/>當(dāng)null用于數(shù)字環(huán)境時(shí),它被自動(dòng)轉(zhuǎn)換為0");//此句將被輸出
}else{
document.write("<br/>當(dāng)null用于數(shù)字環(huán)境時(shí),不轉(zhuǎn)換");
}
//用于字符串環(huán)境
document.write("<br/>用于字符串環(huán)境:"+$null);//null
//null的typeof:object
document.write("<br/>$null的數(shù)據(jù)類型為:"+typeof $null);//object
/**
*****************undefined******************
undefined是一個(gè)特殊的值,它不是javascript中的關(guān)鍵字。以下幾種情況需要注意:
1.使用了已經(jīng)聲明但還沒有賦值的變量時(shí)
2.使用了一個(gè)并不存在的對(duì)象屬性時(shí)
以上二種情況,返回的都是undefined這個(gè)值。undefined值不同于null.
當(dāng)未定義的值用于布爾環(huán)境時(shí),它會(huì)自動(dòng)轉(zhuǎn)換為false;
當(dāng)它用于一個(gè)數(shù)字環(huán)境時(shí),它會(huì)自動(dòng)轉(zhuǎn)換為NaN;(NaN的解釋:NaN 屬性是代表非數(shù)字值的特殊值。該屬性用于指示某個(gè)值不是數(shù)字。
當(dāng)它用于一個(gè)字符串環(huán)境時(shí),它會(huì)自動(dòng)轉(zhuǎn)換為"undefined";
*/
var $aaa;//聲明了,但沒有初始化。
var $bbb = "測(cè)試";//聲明了,并且初始化了。
var $obj = new Object();
document.write("<br/>$aaa的類型:"+typeof $aaa+"、$aaa的值:"+$aaa);//undefined、undefined
document.write("<br/>$bbb的類型:"+typeof $bbb+"、$bbb的值:"+$bbb);//string、測(cè)試
document.write("<br/>$obj的一個(gè)不存在的屬性myProp的類型:"+typeof $obj.myProp+"、$obj.myProp的值:"+$obj.myProp);//undefined、undefined
//document.write("<br/>輸出一個(gè)并未聲明的變量的值:"+$abc);//運(yùn)行錯(cuò)誤
/**
undefined 與 null的聯(lián)系
雖然undefined和null值不同,但是==運(yùn)算符卻將兩者看作相等。
var obj = new Objec();
obj.prop == null //返回true
如果要嚴(yán)格區(qū)分undefiend和null,則需要用到====運(yùn)算符或者typeof
var obj = new Objec();
obj.prop === null //返回false
typeof obj.prop //輸出undefined
typeof null //輸出object
*/
</script>
</body>
</html>
相關(guān)文章
jQuery+Ajax+PHP彈出層異步登錄效果(附源碼下載)
本文我們給大家介紹如何使用jQuery+Ajax+PHP彈出層異步登錄的應(yīng)用。感興趣的朋友通過本文學(xué)習(xí)吧2016-05-05關(guān)于 jQuery Easyui異步加載tree的問題解析
想要實(shí)現(xiàn)從本地中加載json文件,通過事件來動(dòng)態(tài)的插入到ul中時(shí),遇到了一小bug,下面小編給大家解答下2016-12-12jquery css 設(shè)置table的奇偶行背景色示例
jquery css 設(shè)置table的奇偶行背景色2014-06-06jQuery操作DOM_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了jQuery操作DOM,下面的DOM操作將圍繞上面的DOM樹進(jìn)行學(xué)習(xí)JQueryDOM操作,有興趣的可以了解一下2017-07-07jqGrid日期格式的判斷示例代碼(開始日期與結(jié)束日期)
jqGrid日期格式的判斷示例代碼(開始日期與結(jié)束日期)。需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-11-11在線引用最新jquery文件的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄诰€引用最新jquery文件的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-08jquery tools之tabs 選項(xiàng)卡/頁(yè)簽
jquery用這么久了,覺得雖然沒ExtJS等框架全面,功能強(qiáng)大,但是也確實(shí)做到了“the write less,do more”,而且學(xué)起來也方便,只需要仔細(xì)研讀一下它官方網(wǎng)站的API Reference,操作起來基本問題不是太大。2009-07-07jQuery實(shí)現(xiàn)為動(dòng)態(tài)添加的元素綁定事件實(shí)例分析
這篇文章主要介紹了jQuery實(shí)現(xiàn)為動(dòng)態(tài)添加的元素綁定事件,結(jié)合實(shí)例形式分析了jQuery常見的事件綁定相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-09-09jquery中dom操作和事件的實(shí)例學(xué)習(xí) 仿yahoo郵箱登錄框的提示效果
最近把jquery中的dom操作和jquery中的事件和動(dòng)畫的方法都大體測(cè)了一下。本來想細(xì)細(xì)的把每個(gè)方法都寫出來介紹下2011-11-11