成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

js類型檢測(cè)

roadtogeek / 2083人閱讀

摘要:在中我們通常使用來(lái)檢測(cè)變量的類型但是在一些復(fù)雜情況下就顯得力不從心了下面我們來(lái)說(shuō)說(shuō)和使用這三個(gè)進(jìn)行類型的檢測(cè)檢測(cè)中的基本類型還是可以的對(duì)于和就比較特殊了對(duì)于函數(shù)數(shù)組對(duì)于下面的檢測(cè)就比較混亂了該函數(shù)用來(lái)查看對(duì)象的構(gòu)造函數(shù)這里需要注意的是對(duì)于和

在javascript中我們通常使用typeof()來(lái)檢測(cè)變量的類型,但是在一些復(fù)雜情況下typeof()就顯得力不從心了,下面我們來(lái)說(shuō)說(shuō)typeof,constructortoString,使用這三個(gè)進(jìn)行類型的檢測(cè).

typeof

typeof檢測(cè)js中的基本類型還是可以的.

var num = 1;
typeof(num) // number
var str = "hello";
typeof(str); // string
var bool = true;
typeof(bool); // boolean

對(duì)于undefinednull就比較特殊了,

typeof(undefined); // undefined
typeof(null); // object

對(duì)于函數(shù)、數(shù)組

function  a(){};
typeof(a); // function
var arr = [];
typeof(arr); // object

對(duì)于下面的檢測(cè)就比較混亂了:

typeof new Boolean(true) === "object";
typeof new Number(1) ==== "object";
typeof new String("abc") === "object";
typeof new Date() === "object";
constructor

該函數(shù)用來(lái)查看對(duì)象的構(gòu)造函數(shù)

var bool = true;
console.log(bool.constructor == Boolean);// true
var num = 1; 
console.log(num.constructor == Number); // true
var str = "hello";
console.log(str.constructor == String); // true

這里需要注意的是:
對(duì)于 undefinednull ,不能夠使用 construcor檢測(cè).

toString

使用toString檢測(cè),必須使用Object.prototype.toString(),
先來(lái)看看這個(gè)東東輸出什么鬼:

console.log(Object.prototype.toString()); // [object Object]

那么如何使用toString()來(lái)進(jìn)行檢測(cè)呢?這里使用 call()來(lái)改變this的指向,

var bool = true;
console.log(Object.prototype.toString.call(bool)); // [object Boolean]
var num = 1;
console.log(Object.prototype.toString.call(num)); // [object Number]
var str = "hello";
console.log(Object.prototype.toString.call(str)); // [object String]
var arr = [];
console.log(Object.prototype.toString.call(arr)); // [object Array]
var a = undefined;
console.log(Object.prototype.toString.call(a)); // [object Undefined]
var b = null;
console.log(Object.prototype.toString.call(b)); // [object Null]

可以看出 使用Object.prototype.toString.call()來(lái)檢測(cè) 是比較完美的.推薦使用.

補(bǔ)充 instanceof

檢測(cè)某個(gè)實(shí)例是否在某個(gè)對(duì)象的原型鏈上 原型鏈__proto__,

var c = [];
console.log(c instanceof Object); //true
var d = 123;  // 這些 普通類型 并不是對(duì)象
console.log(d instanceof Object); //false
var str = "hello"; //  不是對(duì)象
console.log(str instanceof Object); //false
var num = new Number(123);
console.log(num instanceof Object);

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/78781.html

相關(guān)文章

  • JS類型(三):JS類型檢查

    摘要:正文一基本類型檢測(cè)為什么說(shuō)是基本類型檢測(cè)對(duì)于這三種類型經(jīng)常用到的基本類型檢測(cè)是正確的。為什么說(shuō)是更好的檢測(cè)方法上面的兩種方法要么是只能檢測(cè)基本類型,要么是只能檢測(cè)引用類型,還存在不支持檢測(cè)的情況。 前言 前兩篇文章主要是一直在討論JS類型的轉(zhuǎn)換,那么怎么才能檢測(cè)JS的數(shù)據(jù)類型呢?檢測(cè)數(shù)據(jù)類型在工程中經(jīng)常用到,常見的JS類型檢測(cè)有三種方法: 1. typeof 2. instanceof...

    ad6623 評(píng)論0 收藏0
  • JS基本類型類型檢測(cè)

    摘要:基本類型和類型檢測(cè)類型基本類型,,,,,類型檢測(cè)在開發(fā)中難免會(huì)遇到類型檢測(cè),以下就是常用一些方法可以檢測(cè)基本類型蛋蛋君但是使用檢測(cè)的時(shí)候會(huì)返回。 JS基本類型和類型檢測(cè) 類型 基本類型:string,number,null,undefined,boolean,object 類型檢測(cè) 在開發(fā)中難免會(huì)遇到類型檢測(cè),以下就是常用一些方法 typeof: typeof可以檢測(cè)基本類型 typ...

    JowayYoung 評(píng)論0 收藏0
  • JS專題之?dāng)?shù)據(jù)類型類型檢測(cè)

    摘要:運(yùn)算符可以用來(lái)檢測(cè)某個(gè)構(gòu)造函數(shù)的屬性是否存在于另外一個(gè)要檢測(cè)對(duì)象的原型鏈上。使用方法可以獲取到變量的準(zhǔn)確的數(shù)據(jù)類型就能解決基本包裝類型的檢測(cè)錯(cuò)誤和的檢測(cè)不安全。 本文共 1750 字,讀完只需 7 分鐘 數(shù)據(jù)類型有哪些? ECMAScript 的數(shù)據(jù)類型分為簡(jiǎn)單數(shù)據(jù)類型(也被稱為基本數(shù)據(jù)類型,原始數(shù)據(jù)類型): Undefined Null String Number Boolean ...

    since1986 評(píng)論0 收藏0
  • js檢測(cè)數(shù)據(jù)類型的四種方法

    摘要:中檢測(cè)數(shù)據(jù)類型的四種方法前言先說(shuō)一下中的數(shù)據(jù)類型有哪幾類主要分類兩大類型,基本類型和引用類型。用法結(jié)果這樣一看,似乎能滿足的所有數(shù)據(jù)類型,那我們看下繼承之后是否能檢測(cè)出來(lái)結(jié)果小結(jié)可以看出,可用于檢測(cè)所有的數(shù)據(jù)類型。 js中檢測(cè)數(shù)據(jù)類型的四種方法 前言 先說(shuō)一下JavaScript中的數(shù)據(jù)類型有哪幾類?主要分類兩大類型,基本類型和引用類型。 showImg(https://segment...

    darryrzhong 評(píng)論0 收藏0
  • <<編寫可維護(hù)的javascript>> 筆記8(避免'空比較&#

    摘要:中常常會(huì)看到這種代碼變量與的比較這種用法很有問(wèn)題用來(lái)判斷變量是否被賦予了一個(gè)合理的值比如不好的寫法執(zhí)行一些邏輯這段代碼中方法顯然是希望是一個(gè)數(shù)組因?yàn)槲覀兛吹降膿碛泻瓦@段代碼的意圖非常明顯如果參數(shù)不是一個(gè)數(shù)組則停止接下來(lái)的操作這種寫法的問(wèn)題在 js中, 常常會(huì)看到這種代碼: 變量與null的比較(這種用法很有問(wèn)題), 用來(lái)判斷變量是否被賦予了一個(gè)合理的值. 比如: const Contr...

    young.li 評(píng)論0 收藏0
  • js基礎(chǔ)--數(shù)據(jù)類型檢測(cè)的相關(guān)知識(shí)

    摘要:話不多說(shuō),我們開干,加油干貨滿滿今天,我們一起學(xué)習(xí)一下中的數(shù)據(jù)類型檢測(cè)相關(guān)的知識(shí),也順便做個(gè)總結(jié)?;緮?shù)據(jù)類型又包括,還有一個(gè)新增的,我們這先不說(shuō)。 歡迎訪問(wèn)我的個(gè)人博客:http://www.xiaolongwu.cn 前言 最近工作有點(diǎn)忙,好幾天都沒(méi)更新技術(shù)博客了。 周末起床打開有道云筆記,發(fā)現(xiàn)自己的博客todolist里躺了一堆只有名字的文件。 話不多說(shuō),我們開干,加油! 干貨滿...

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

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

0條評(píng)論

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