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

Javascript中判斷一個(gè)值是否為undefined的方法詳解

 更新時(shí)間:2016年09月28日 09:57:56   投稿:daisy  
這篇文章給大家詳細(xì)介紹了在Javascript中如何判斷一個(gè)值是否為undefined,對(duì)大家的日常工作和學(xué)習(xí)很有幫助,下面來(lái)一起看看吧。

前言

相信大家都知道當(dāng)聲明一個(gè)變量,并且沒有給賦值的情況下,它的初始值是undefined。但是在javascript中,怎么檢查一個(gè)值是否為undefined呢?

簡(jiǎn)單來(lái)說(shuō),在現(xiàn)代瀏覽器中,你可以安全的比較變量是否為undefined

if (name === undefined) {...}

一些人反對(duì)直接使用undefined變量進(jìn)行比較,因?yàn)樵谂f的瀏覽器中允許它的值被重新賦值,比如下面這樣:

undefined = "test"

在被重新賦值后,使用undefined指令將不能正確的檢測(cè)一個(gè)變量是否被賦值。

不過(guò),這個(gè)行為在2009年的ECMAScript 5被修復(fù)了。

15.1.1.3 undefined
The value of undefined is undefined (see 8.1). This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.

在現(xiàn)代瀏覽器中,undefined的值將不能被重寫

我們需要支持IE8或者更古老的瀏覽器怎么辦

通常undefined指令是安全的。在應(yīng)用中并沒有什么理由需要修改undefined的值。

Thomas的回答使用具有說(shuō)服力的推理,論證了這一點(diǎn)。

I don't hear people telling me that I shouldn't use setTimeout because someone can
我不聽別人告訴我,我不應(yīng)該使用setTimeout,因?yàn)橛械娜讼襁@樣用:
window.setTimeout = function () {
  alert("Got you now!");
};

下面一行,“它可以被重新賦值”,raw === undefined返回false

如果你仍然很在意,有兩個(gè)方法可以檢查一個(gè)值是否為undefined,即使全局window.undefined已經(jīng)被重寫

if (name === void(0)) {...}

在這個(gè)例子中0沒有任何實(shí)際意義,你想要使用 1 or function(){}也無(wú)所謂。 void(anything)都會(huì)計(jì)算得到undefiend

另外一種選擇,你可以使用typeof操作符安全地檢查是否已經(jīng)被賦值。你可以檢查一個(gè)值的類型是否為”undefined”代替與全局的undefined比較.

if (typeof name === "undefined") {...}

注意第二個(gè)選擇與前一個(gè)方案稍微有點(diǎn)差異.盡管name沒有被聲明,typeof會(huì)返回他是undefined。如果你直接使用name與undefinedor void(0)你會(huì)得到ReferenceError異常的錯(cuò)誤.

但是不要使用VOID(0)指令

在代碼中避免使用void(0)或者 typeof x === "undefined" ,你可以使用isUndefined function方法把他們包起來(lái),這樣你使用的時(shí)候就不用再特意說(shuō)明了.

function isUndefined(value){
  //獲得undefined,保證它沒有被重新賦值
  var undefined = void(0);
  return value === undefined;
}

一些工具庫(kù)已經(jīng)部署了這個(gè)方法,例如: _.isUndefined,underscore中的isUndefined方法

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望能對(duì)大家的學(xué)習(xí)或者工作帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。

相關(guān)文章

  • 微信小程序?qū)崿F(xiàn)錨點(diǎn)定位功能的方法實(shí)例

    微信小程序?qū)崿F(xiàn)錨點(diǎn)定位功能的方法實(shí)例

    “錨點(diǎn)”功能在實(shí)際應(yīng)用設(shè)計(jì)的好,可以提高用戶體驗(yàn),這篇文章主要給大家介紹了關(guān)于微信小程序?qū)崿F(xiàn)錨點(diǎn)定位功能的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-07-07
  • JS獲取地址欄參數(shù)的兩種方法(原生、vue)

    JS獲取地址欄參數(shù)的兩種方法(原生、vue)

    這篇文章主要介紹了JS獲取地址欄參數(shù)的兩種方法(原生、vue),文中通過(guò)代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-07-07
  • JavaScript前端中的偽類元素before和after使用詳解

    JavaScript前端中的偽類元素before和after使用詳解

    before和after也算是css里面最常見的元素了,而我卻一直不太了解,再不學(xué)一下就真的太不像話了。所以學(xué)習(xí)一下,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-02-02
  • 詳解微信小程序中數(shù)據(jù)雙向綁定如何實(shí)現(xiàn)

    詳解微信小程序中數(shù)據(jù)雙向綁定如何實(shí)現(xiàn)

    最近在小程序的開發(fā)過(guò)程中,需要用到雙向綁定,遇到報(bào)錯(cuò)才知道微信本身是不支持對(duì)象雙向綁定的,鏖戰(zhàn)一番找到解決方案,下面這篇文章主要給大家介紹了關(guān)于微信小程序中數(shù)據(jù)雙向綁定如何實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • 原生JavaScript實(shí)現(xiàn)幻燈片效果

    原生JavaScript實(shí)現(xiàn)幻燈片效果

    這篇文章主要為大家詳細(xì)介紹了原生JavaScript實(shí)現(xiàn)幻燈片效果,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • JS數(shù)組去重的九種高階方法(親測(cè)有效)

    JS數(shù)組去重的九種高階方法(親測(cè)有效)

    這篇文章主要給大家介紹了關(guān)于JS數(shù)組去重的九種高階方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • TS中type和interface的區(qū)別解析

    TS中type和interface的區(qū)別解析

    對(duì)于type來(lái)說(shuō),更多的是對(duì)類型的一種復(fù)用,比如在項(xiàng)目中需要用到一些比較復(fù)雜的或者書寫起來(lái)很長(zhǎng)的類型,而對(duì)于 interface來(lái)說(shuō),它是正兒八經(jīng)的用來(lái)定義接口類型(約束數(shù)類型和屬性)的,且接口類型是支持繼承和聲明合并的,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • 淺談JavaScript字符串與數(shù)組

    淺談JavaScript字符串與數(shù)組

    本文給大家簡(jiǎn)單介紹了下javascript中的字符串和數(shù)組,都是些十分基礎(chǔ)的知識(shí),小伙伴們要學(xué)好javascript,一定要把這2點(diǎn)理解清楚。
    2015-06-06
  • undefined與null的區(qū)別示例詳解

    undefined與null的區(qū)別示例詳解

    這篇文章主要為大家介紹了undefined與null的區(qū)別示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • JS+Canvas實(shí)現(xiàn)貪吃蛇小游戲

    JS+Canvas實(shí)現(xiàn)貪吃蛇小游戲

    這篇文章介紹了JS+Canvas實(shí)現(xiàn)貪吃蛇小游戲,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01

最新評(píng)論

巴青县| 锡林郭勒盟| 城口县| 邢台市| 福海县| 姜堰市| 高要市| 太湖县| 慈溪市| 盐山县| 本溪| 德保县| 城市| 永登县| 电白县| 枞阳县| 迁安市| 潞城市| 新绛县| 西和县| 什邡市| 屯留县| 普宁市| 萝北县| 郁南县| 新竹市| 泰来县| 巫溪县| 南汇区| 宜城市| 连山| 克什克腾旗| 潞城市| 资溪县| 汉沽区| 兴海县| 喀喇沁旗| 丹江口市| 贡山| 岱山县| 施秉县|