最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

區(qū)分JS中的undefined,null,"",0和false

 更新時(shí)間:2007年03月08日 00:00:00   作者:  
在程序語言中定義的各種各樣的數(shù)據(jù)類型中,我們都會(huì)為其定義一個(gè)"空值"或"假值",比如對象類型的空值null,.NET Framework中數(shù)據(jù)庫字段的空值DBNull,boolean類型的假值false等等。在JavaScript中也有很多種的"空值"和"假值",那么它們都有什么共同點(diǎn)和不同點(diǎn)呢?

    其實(shí)標(biāo)題里面我已經(jīng)列出了JavaScript中所有的"空值"和"假值",除了boolean值本身就是true和false這兩種情況外,其它數(shù)據(jù)類型的"空值"主要是undefined和defined這兩大類。這些空值的類型分別是: 
復(fù)制代碼 代碼如下:

 typeof(undefined) == 'undefined' 
 typeof(null) == 'object' 
 typeof("") == 'string' 
 typeof(0) == 'number' 
 typeof(false) == 'boolean' 

    這五個(gè)值的共同點(diǎn)是,在if語句中做判斷,都會(huì)執(zhí)行false分支。當(dāng)然從廣義上來看,是說明這些數(shù)值都是其對應(yīng)數(shù)據(jù)類型上的無效值或空值。還有這五個(gè)值作!運(yùn)算,結(jié)果全為:true。

    這幾個(gè)值中也有不同,其中undefined和null比較特殊,雖然null的類型是object,但是null不具有任何對象的特性,就是說我們并不能執(zhí)行null.toString()、null.constructor等對象實(shí)例的默認(rèn)調(diào)用。所以從這個(gè)意義上來說,null和undefined有最大的相似性??纯磏ull == undefined的結(jié)果(true)也就更加能說明這點(diǎn)。不過相似歸相似,還是有區(qū)別的,就是和數(shù)字運(yùn)算時(shí),10 + null結(jié)果為:10;10 + undefined結(jié)果為:NaN。

    另外""、0和false雖然在if語句表現(xiàn)為"假值",可它們都是有意義數(shù)據(jù),只是被作為了"空值"或"假值",因?yàn)椋?".toString(),(0).toString()和false.toString()都是合法的可執(zhí)行表達(dá)式。

    其實(shí)這5個(gè)值在上面所說的這些差異里,并不太會(huì)給程流程控制帶來太大的問題,那么要區(qū)分它們什么呢?需要注意區(qū)分的是這些值在轉(zhuǎn)換為String時(shí)的差異是比較大的,它們到String的轉(zhuǎn)換關(guān)系是: 
復(fù)制代碼 代碼如下:

 String(undefined) -> "undefined" 
 String(null) -> "null" 
 String("") -> "" 
 String(0) -> "0" 
 String(false) -> "false" 

    這個(gè)轉(zhuǎn)換關(guān)系在做字符串累加時(shí)需要特別的注意,否這會(huì)出些意想不到的問題,今天就遇到一個(gè)null被默認(rèn)轉(zhuǎn)為"null"給弄得迷糊了好一陣子。

相關(guān)文章

  • JavaScript遞歸操作樹形結(jié)構(gòu)代碼示例

    JavaScript遞歸操作樹形結(jié)構(gòu)代碼示例

    前端樹形結(jié)構(gòu)一般用于網(wǎng)頁的地理位置輸入框,地理位置級聯(lián)選擇,人員的部門選擇等,這篇文章主要給大家介紹了關(guān)于JavaScript遞歸操作樹形結(jié)構(gòu)的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • JavaScript通過改變文字透明度實(shí)現(xiàn)的文字閃爍效果實(shí)例

    JavaScript通過改變文字透明度實(shí)現(xiàn)的文字閃爍效果實(shí)例

    這篇文章主要介紹了JavaScript通過改變文字透明度實(shí)現(xiàn)的文字閃爍效果,結(jié)合完整實(shí)例形式分析了javascript基于定時(shí)器周期性動(dòng)態(tài)修改頁面元素屬性的相關(guān)操作技巧,需要的朋友可以參考下
    2017-04-04
  • js實(shí)現(xiàn)遮罩層劃出效果是生成div而不是顯示

    js實(shí)現(xiàn)遮罩層劃出效果是生成div而不是顯示

    單純的遮蓋層劃出是比較簡單的,而本例介紹的這個(gè)就有點(diǎn)難度,生成div,而不是顯示存在的div,需要的朋友可以參考下
    2014-07-07
  • javascript中的相等操作符(==與===區(qū)別)

    javascript中的相等操作符(==與===區(qū)別)

    這篇文章主要介紹了javascript中的相等操作符(==與===區(qū)別),需要的朋友可以參考下
    2019-12-12
  • JS面試題---關(guān)于算法臺階的問題

    JS面試題---關(guān)于算法臺階的問題

    下面小編就為大家?guī)硪黄狫S面試題---關(guān)于算法臺階的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07
  • JavaScript 函數(shù)replace深入了解

    JavaScript 函數(shù)replace深入了解

    在JavaScript中replace函數(shù)作為字符串替換函數(shù),這是一個(gè)威力強(qiáng)大的字符串操作函數(shù),對于常見字符串操作的推薦用法。這篇隨筆就來更加深入的理解它。
    2013-03-03
  • Javascript 遍歷對象中的子對象

    Javascript 遍歷對象中的子對象

    昨天同事問我一個(gè)問題:“有一個(gè)JSON對象,其中有若干個(gè)子對象,如何遍歷這個(gè)對象中的子對象?”
    2009-07-07
  • 微信小程序中不同頁面?zhèn)鬟f參數(shù)的操作方法

    微信小程序中不同頁面?zhèn)鬟f參數(shù)的操作方法

    這篇文章主要介紹了微信小程序中不同頁面?zhèn)鬟f參數(shù)的操作方法,在開發(fā)項(xiàng)目中,避免不了不同頁面之間傳遞數(shù)據(jù)等,那么就需要進(jìn)行不同頁面之間的一個(gè)數(shù)據(jù)傳遞的,需要的朋友可以參考下
    2023-12-12
  • 原生js實(shí)現(xiàn)簡單輪播圖效果

    原生js實(shí)現(xiàn)簡單輪播圖效果

    這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)簡單輪播圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • JS自定義對象實(shí)現(xiàn)Java中Map對象功能的方法

    JS自定義對象實(shí)現(xiàn)Java中Map對象功能的方法

    這篇文章主要介紹了JS自定義對象實(shí)現(xiàn)Java中Map對象功能的方法,可實(shí)現(xiàn)類似Java中Map對象增刪改查等功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01

最新評論

泰顺县| 灵川县| 那坡县| 黔江区| 莱阳市| 淮阳县| 逊克县| 加查县| 吉水县| 大关县| 海丰县| 金坛市| 东兰县| 柞水县| 沾化县| 巨野县| 丰顺县| 彭泽县| 潜江市| 礼泉县| 喀喇| 莆田市| 高雄市| 固镇县| 界首市| 合阳县| 泽库县| 印江| 温州市| 新乐市| 新巴尔虎左旗| 同江市| 阿合奇县| 合江县| 都昌县| 汾西县| 明星| 晋宁县| 绥芬河市| 鱼台县| 宜都市|