欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    最近項目中有不少地方需要判斷數據類型,但是判斷數據類型也有好幾種方法,并且每種方法判斷的數據類型也有局限性,所以想總結一下,方便以后查閱。

    分別是 ,,...call()

    它返回值是一個字符串,該字符串說明運算數的類型。返回結果只有以下幾種:,,,,,

    可以使用判斷變量是否存在(比如 if( a!=“”){ xxx }),而不要去使用if(a),因為a不存在(未聲明)會報錯。

    無法判斷對象和數組js校驗是否為數字,還有null,因為都返回的是對于數字類型的操作數而言, 返回的值是 。比如:(1),返回的值就是。對于字符串類型, 返回的值是 。比如:(“123”),返回的值是。對于布爾類型, 返回的值是 。比如:(true),返回的值是。對于對象、數組、null 返回的值是 。比如:(),(),(null)返回的值都是。對于函數類型,返回的值是 。比如:(eval),(Date)返回的值都是。如果運算數是沒有定義的(比如說不存在的變量、函數或者),將返回。 比如:(sss)、()都返回。

    下面 我們將用程序代碼驗證一下:

    .log((1)); //

    .log((NaN)); //

    .log(("123")); //

    .log(("123" + 12)); //

    .log(("123" + Date)); //

    .log((true)); //

    .log(()); //

    .log(()); //

    .log((null)); //

    .log(([8])); //

    .log(({a:1})); //

    .log((Date)); //

    .log((sss)); //

    .log(()); //

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    js正則判斷是否為數字_jquery校驗是否為數字_js校驗是否為數字

    14

    局限性:

    由上面程序代碼可驗證,很遺憾的一點是, 在判斷一個 的數據的時候只能告訴我們這個數據是 , 而不能細致的具體到是哪一種 。所以要 想區分對象、數組、null,單純使用 是不行的。

    運算符

    是用來 判斷數據是否是某個對象的實例,返回一個布爾值。

    基本用法:

    // 判斷 obj 是否為 的實例

    (name) {

    ??this.name?? = name

    }

    const p = new ('')

    p // true

    // 這里的 p 是 函數構造出來的,所以順著 p 的原型鏈可以找到的構造函數

    p.proto === . // true

    p.proto.proto === . // true

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    缺點:

    對于基本類型的數據,是不能直接判斷它的類型的,因為實例是一個對象或函數創建的,是引用類型,所以需要通過基本類型對應的 包裝對象 來判斷。所以對于 null 和 這兩個家伙就檢測不了了~

    5 // false

    new (5) // true

    1

    2

    因為原型鏈繼承的關系, 會把數組都識別為 對象,所有引用類型的祖先都是 對象

    js校驗是否為數字_js正則判斷是否為數字_jquery校驗是否為數字

    let arr = [1,2,3]

    .log(...call(arr) === '[ Array]') // true

    .log(arr Array) // true

    .log(arr ) // true

    let fn = (){}

    .log(fn ) // true

    1

    2

    3

    4

    5

    6

    下面介紹一種方法,對每一種數據類型都實用的。

    ...call()

    在判斷數據類型時,我們稱 .. 為 “萬能方法” “終極方法”,工作中也是比較常用而且準確。

    對于..() 方法,會返回一個形如 “[ XXX]” 的字符串判斷基本類型

    ...call('stjd')

    //"[ ]"

    ...call(1)

    //"[ ]"

    ...call(true)

    //"[ ]"

    ...call(null)

    //"[ Null]"

    ...call()

    //"[ ]"

    1

    2

    3

    4

    5

    6

    js正則判斷是否為數字_js校驗是否為數字_jquery校驗是否為數字

    7

    8

    9

    10

    11

    12

    13

    14

    2) 判斷原生引用類型

    a 函數類型

    ...call((){}) //這個方法就建立在js任何類型皆可視為對象**

    // "[ ]"

    1

    2

    b 日期類型

    var date = new Date();

    ...call(date);

    //”[ Date]”

    1

    2

    3

    c 數組類型

    ...call([2])

    //"[ Array]"

    1

    2

    d 對象類型

    ...call({q:8})

    //"[ ]"

    1

    2

    e 正則表達式

    js正則判斷是否為數字_js校驗是否為數字_jquery校驗是否為數字

    var reg = /[hbc]at/gi;

    ...call(reg); // "[ ]"

    1

    2

    f 自定義類型

    (name, age) {

    ??this.name?? = name;

    this.age = age;

    }

    var = new ("Rose", 18);

    ...call();

    //”[ ]”

    1

    2

    3

    4

    5

    6

    7

    顯然這種方法不能準確判斷是類的實例,而只能用 操作符來進行判斷,如下所示:

    .log( );//輸出結果為true

    1

    注意:

    ..()本身是允許被修改的,而我們目前所討論的關于..()這個方法的應用都是假設()方法未被修改為前提的。

    因為實例對象有可能會自定義()方法,會覆蓋..(), 所以在使用時,最好加上call()。

    有的時候我們也可以封裝判斷數據類型的方法。

    // 判斷數據類型的函數

    (data) {

    ...call(data).slice(8, -1);

    }

    // 使用

    if(this.(json) == ''){

    js正則判斷是否為數字_js校驗是否為數字_jquery校驗是否為數字

    .log('類型')

    }else if (this.(json) == 'Array'){

    .log('Array類型')

    }

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    4. 補充 Array.() 方法

    js中的()是Array類型的一個靜態方法,使用它可以判斷一個值是否為數組。

    返回一個布爾值。

    var arr = [1,2,3]

    .log(Array.(arr)) //true

    1

    2

    該方法可直接返回布爾值,在條件表達式中,使用該方法非常實用。

    總結:

    js數據類型的判斷主要有三種方法: ,,...call()

    可以區分 原始類型,和 數據類型

    ...call() 區分的數據類型適用范圍更大,但是無法區分自定義對象類型

    區分自定義對象類型使用 操作符

    js中null:即是對象,又不是對象,史稱【薛定諤的對象】

    判斷數據類型方法有很多js校驗是否為數字,實際使用需要根據自己的需求使用最適合自己的方法

    參考:

    ...call()方法使用

    最全的判斷數據類型的方法

    講的比較好

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有