国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

正確判斷js數(shù)據(jù)類(lèi)型 總結(jié)記錄

NotFound / 1378人閱讀

摘要:正確判斷數(shù)據(jù)類(lèi)型總結(jié)記錄判斷中的數(shù)據(jù)類(lèi)型有一下幾種方法三方庫(kù)。只有一個(gè)值得數(shù)據(jù)類(lèi)型,邏輯上講,值表示一個(gè)空對(duì)象指針。

正確判斷js數(shù)據(jù)類(lèi)型 總結(jié)記錄

判斷js中的數(shù)據(jù)類(lèi)型有一下幾種方法:typeof、instanceof、 constructor、 prototype、 三方庫(kù)。

js六大數(shù)據(jù)類(lèi)型
number:   數(shù)字,整數(shù)、浮點(diǎn)數(shù)等等,
string:   單引號(hào)或者雙引號(hào)來(lái)說(shuō)明,
Boolean:  返回true和false,這兩個(gè)值不一定對(duì)應(yīng)1和0
object:   對(duì)象,可以執(zhí)行new操作符后跟要?jiǎng)?chuàng)建的對(duì)象類(lèi)型的名稱(chēng)來(lái)創(chuàng)建。
null:     只有一個(gè)值得數(shù)據(jù)類(lèi)型,邏輯上講,null值表示一個(gè)空對(duì)象指針。
undefined:未定義,使用var聲明變量但未對(duì)其初始化時(shí),變量的值就是undefined。
1、typeof

在實(shí)際的項(xiàng)目應(yīng)用中,typeof只有兩個(gè)用途,就是檢測(cè)一個(gè)元素是否為undefined,或者是否為function。原因如下:
JavaScript Garden整理出來(lái)了如下表格

Value               function   typeof
-------------------------------------
"foo"               String     string
new String("foo")   String     object
1.2                 Number     number
new Number(1.2)     Number     object
true                Boolean    boolean
new Boolean(true)   Boolean    object
new Date()          Date       object
new Error()         Error      object
[1,2,3]             Array      object
new Array(1, 2, 3)  Array      object
new Function("")    Function   function
/abc/g              RegExp     object
new RegExp("meow")  RegExp     object
{}                  Object     object
new Object()        Object     object 
2、instanceof
var a = [1,2,3];
var b = new Date();
var c = function(){};

alert(a instanceof Array) ---------------> true
alert(b instanceof Date) 
alert(c instanceof Function) ------------> true
alert(c instanceof function) ------------> false
3、constructor
var a = [1,2,3];
var b = new Date();
var c = function(){};

alert(a.constructor === Array) ----------> true
alert(b.constructor === Date) -----------> true
alert(c.constructor === Function) -------> true

注:
? ? ? 使用instaceof和construcor,被判斷的引用類(lèi)型(Object Array)必須是在當(dāng)前頁(yè)面聲明的!比如,一個(gè)頁(yè)面(父頁(yè)面)有一個(gè)框架,框架中引用了一個(gè)頁(yè)面(子頁(yè)面),在子頁(yè)面中聲明了一個(gè)array,并將其賦值給父頁(yè)面的一個(gè)變量,這時(shí)判斷該變量,Array ==object.constructor;會(huì)返回false;
原因:
1、array屬于引用型數(shù)據(jù),在傳遞過(guò)程中,僅僅是引用地址的傳遞。
2、每個(gè)頁(yè)面的Array原生對(duì)象所引用的地址是不一樣的,在子頁(yè)面聲明的array,所對(duì)應(yīng)的構(gòu)造函數(shù),是子頁(yè)面的Array對(duì)象;父頁(yè)面來(lái)進(jìn)行判斷,使用的Array并不等于子頁(yè)面的Array。

4、Object.prototype.toString(通用)
Object.prototype.toString.call()
var toString = Object.prototype.toString;

toString.call(undefined);  -------------> [object Undefined]
toString.call(null);       -------------> [object Null]
toString.call(new Date);   -------------> [object Date]
toString.call(new String); -------------> [object String]
toString.call(Math);       -------------> [object Math]

jQuery.type()源碼

var class2type = {} ;
"Boolean Number String Function Array Date RegExp Object Error".split(" ").forEach(function(e,i){
    class2type[ "[object " + e + "]" ] = e.toLowerCase();
}) ;

function _typeof(obj){
    if ( obj == null ){
        return String( obj );
    }
    return typeof obj === "object" || typeof obj === "function" ?
        class2type[ class2type.toString.call(obj) ] || "object" :
        typeof obj;
}

注:數(shù)組還可以用 Array.isArray(); 或者根據(jù)其具有的方法去判斷。不再細(xì)述

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/99077.html

相關(guān)文章

  • 前端知識(shí)點(diǎn)總結(jié)——JS高級(jí)(持續(xù)更新中)

    摘要:前端知識(shí)點(diǎn)總結(jié)高級(jí)持續(xù)更新中字符串什么是連續(xù)存儲(chǔ)多個(gè)字符的字符數(shù)組相同下標(biāo)遍歷選取不同類(lèi)型不同不通用所有字符串都無(wú)權(quán)修改原字符串,總是返回新字符串大小寫(xiě)轉(zhuǎn)換統(tǒng)一轉(zhuǎn)大寫(xiě)統(tǒng)一轉(zhuǎn)小寫(xiě)何時(shí)不區(qū)分大小寫(xiě)時(shí),都需要先轉(zhuǎn)為一致的大小寫(xiě),再比較。 前端知識(shí)點(diǎn)總結(jié)——JS高級(jí)(持續(xù)更新中) 1.字符串 什么是: 連續(xù)存儲(chǔ)多個(gè)字符的字符數(shù)組 相同: 1. 下標(biāo) 2. .length 3. 遍歷 4....

    wangzy2019 評(píng)論0 收藏0
  • SCORM標(biāo)準(zhǔn)應(yīng)用編程接口(API)和數(shù)據(jù)模型(Data Model)學(xué)習(xí)及總結(jié)

    摘要:需要對(duì)每個(gè)用戶的每個(gè)內(nèi)容對(duì)象維護(hù)一個(gè)數(shù)據(jù)結(jié)構(gòu)。并沒(méi)有直接和相連,所以是將數(shù)據(jù)由暫存的內(nèi)存中取出。采用實(shí)現(xiàn)的可用進(jìn)行數(shù)據(jù)提交。記錄的完成情況,包括未嘗試未學(xué)習(xí)未完成,已完成。 簡(jiǎn)介 SCORM定義了一個(gè)網(wǎng)絡(luò)化學(xué)習(xí)的內(nèi)容聚合模型(Content Aggregaion Model)和學(xué)習(xí)對(duì)象的實(shí)時(shí)運(yùn)行環(huán)境(Run-time Environment)。簡(jiǎn)單說(shuō),它是為了滿足對(duì)網(wǎng)絡(luò)化學(xué)習(xí)內(nèi)容的高水...

    ThinkSNS 評(píng)論0 收藏0
  • JS函數(shù)式編程讀書(shū)筆記 - 1

    摘要:在近期看到了函數(shù)式編程這本書(shū)預(yù)售的時(shí)候就定了下來(lái)。主要目的是個(gè)人目前還是不理解什么是函數(shù)式編程。且和現(xiàn)在在學(xué)習(xí)函數(shù)式編程有莫大的關(guān)系。加速大概了解了函數(shù)式編程之后。總結(jié)看完了第一章也是可以小結(jié)一下的函數(shù)式編程。 本文章記錄本人在學(xué)習(xí) 函數(shù)式 中理解到的一些東西,加深記憶和并且整理記錄下來(lái),方便之后的復(fù)習(xí)。 在近期看到了《JavaScript函數(shù)式編程》這本書(shū)預(yù)售的時(shí)候就定了下...

    G9YH 評(píng)論0 收藏0
  • js中對(duì)數(shù)據(jù)類(lèi)型總結(jié)判斷數(shù)據(jù)類(lèi)型的各種方法及優(yōu)缺點(diǎn)

    摘要:最常見(jiàn)的判斷方法它的官方解釋操作符返回一個(gè)字符串,表示未經(jīng)計(jì)算的操作數(shù)的類(lèi)型。另外,是判斷對(duì)象是否屬于某一類(lèi)型,而不是獲取的對(duì)象的類(lèi)型。多個(gè)窗口意味著多個(gè)全局環(huán)境,不同的全局環(huán)境擁有不同的全局對(duì)象,從而擁有不同的內(nèi)置類(lèi)型構(gòu)造函數(shù)。 js中的數(shù)據(jù)類(lèi)型 js中只有六種原始數(shù)據(jù)類(lèi)型和一個(gè)Object: Boolean Null Undefined Number String Symbol ...

    voyagelab 評(píng)論0 收藏0
  • 工行數(shù)據(jù)中心高級(jí)經(jīng)理 李雁南:接口冒煙測(cè)試方法

    摘要:接口測(cè)試主要用于檢測(cè)外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個(gè)子系統(tǒng)之間的交互點(diǎn)。隨著案例和執(zhí)行結(jié)果的不斷積累,接口測(cè)試覆蓋會(huì)更加充分,統(tǒng)計(jì)結(jié)果會(huì)更加精確。 原文出自【聽(tīng)云技術(shù)博客】:http://blog.tingyun.com/web/a... 今年遇到了幾個(gè)問(wèn)題,與接口的功能和性能相關(guān),恰巧最近公司也在組織以冒煙測(cè)試為主題的活動(dòng),于是乎突發(fā)奇想,尋思著能否將接口測(cè)試與冒煙測(cè)試結(jié)合起來(lái),發(fā)掘一...

    sunny5541 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<