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

資訊專(zhuān)欄INFORMATION COLUMN

javascript數(shù)據(jù)類(lèi)型檢測(cè)的幾種方式

Baaaan / 1126人閱讀

摘要:類(lèi)型檢測(cè)的方法鴨子類(lèi)型返回一個(gè)字符串,適合函數(shù)對(duì)象和基本類(lèi)型的判斷返回一個(gè)布爾值,判斷對(duì)象類(lèi)型基于原型鏈的方式原理左邊對(duì)象的原型鏈原型上是否有右邊構(gòu)造函數(shù)的對(duì)象屬性是基本類(lèi)型這么多就說(shuō)明不適合用于基本數(shù)據(jù)類(lèi)型注意返回的是

類(lèi)型檢測(cè)的方法

typeof

instanceof

Object.protype.toString

constructor

duck type:鴨子類(lèi)型

typeof

返回一個(gè)字符串,適合函數(shù)對(duì)象和基本類(lèi)型的判斷

var a = 123;
var b = "123";
var c = false;
var d = null;
var e = undefined;
var f = {};
var g = function(){};
var h = [];
var i = NaN;

console.log(typeof a);
console.log(typeof b);
console.log(typeof c);
console.log(typeof d);
console.log(typeof e);
console.log(typeof f);
console.log(typeof g);
console.log(typeof h);
console.log(typeof i);

instanceof

返回一個(gè)布爾值,判斷對(duì)象類(lèi)型(基于原型鏈的方式)

原理:
左邊對(duì)象的原型鏈(_proto_原型)上是否有右邊構(gòu)造函數(shù)的prototype對(duì)象屬性

    var a = 123;
    var b = "123";
    var c = false;
    var d = null;
    var e = undefined;
    var f = {};
    var g = function(){};
    var h = [];
    var i = NaN;
    console.log(a instanceof Number);
    console.log(b instanceof String);
    console.log(c instanceof Boolean);
    console.log(d instanceof Object);
    console.log(e instanceof Object);
    console.log(f instanceof Object);
    console.log(g instanceof Function);
    console.log(h instanceof Array);
    console.log(i instanceof Number);//NaN是基本類(lèi)型

這么多false就說(shuō)明instanceof不適合用于基本數(shù)據(jù)類(lèi)型?。?br>

Object.prototype.toString
var oP = Object.prototype,
toString = oP.toString;
console.log(toString.call(123));//[object Number]
console.log(toString.call("123"));//[object String]
console.log(toString.call(false));//[object Boolean]
console.log(toString.call(undefined));//[object Undefined]
console.log(toString.call(null));//[object Null]
console.log(toString.call({a: "123"}));//[object Object]
console.log(toString.call(/123/));//[object RegExp]
console.log(toString.call([123]));//[object Array]
console.log(toString,call(Date));//[object Function]

注意:IE6/7/8 Object.prototype.toString.call(null/undefined)返回的是[object Object]

constructor
var a = 123;
var b = "123";
var c = false;
var d = null;
var e = undefined;
var f = {};
var g = function(){};
var h = [];
var i = NaN;
console.log(a.constructor == Number);
console.log(b.constructor == String);
console.log(c.constructor == Boolean);
// console.log(d.constructor == Object);
// console.log(e.constructor == Object);
console.log(f.constructor == Object);
console.log(g.constructor == Function);
console.log(h.constructor == Array);
console.log(i.constructor == Number);

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

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

相關(guān)文章

  • javascript高級(jí)程序設(shè)計(jì)》第六章 讀書(shū)筆記 之 javascript對(duì)象幾種創(chuàng)建方式

    摘要:三種使用構(gòu)造函數(shù)創(chuàng)建對(duì)象的方法和的作用都是在某個(gè)特殊對(duì)象的作用域中調(diào)用函數(shù)。這種方式還支持向構(gòu)造函數(shù)傳遞參數(shù)。叫法上把函數(shù)叫做構(gòu)造函數(shù),其他無(wú)區(qū)別適用情境可以在特殊的情況下用來(lái)為對(duì)象創(chuàng)建構(gòu)造函數(shù)。 一、工廠模式 工廠模式:使用字面量和object構(gòu)造函數(shù)會(huì)有很多重復(fù)代碼,在此基礎(chǔ)上改進(jìn)showImg(https://segmentfault.com/img/bVbmKxb?w=456&...

    xiaotianyi 評(píng)論0 收藏0
  • js類(lèi)型檢測(cè)幾種方式盤(pán)點(diǎn)

    摘要:開(kāi)始之前,必須要知道中關(guān)于類(lèi)型的定義。作為基本類(lèi)型也返回,因?yàn)樵谥械亩x就是用來(lái)表示一個(gè)空對(duì)象指針。返回值類(lèi)型總結(jié)一般用來(lái)檢測(cè),無(wú)法正確檢測(cè)基本數(shù)據(jù)類(lèi)型。但是注意,因?yàn)楹投际穷?lèi)型。返回值類(lèi)型總結(jié)這也是比較好的返回方式了。 開(kāi)始之前,必須要知道js中關(guān)于類(lèi)型的定義。js中有6種基本類(lèi)型,null,undefined,boolean,string,number,symbol(es6新增的類(lèi)...

    fantix 評(píng)論0 收藏0
  • JavaScript知識(shí)點(diǎn)總結(jié)

    摘要:參與任何數(shù)值計(jì)算的結(jié)構(gòu)都是,而且。。面向人類(lèi)的理性事物,而不是機(jī)器信號(hào)。達(dá)到無(wú)刷新效果。的工作原理總是指向一個(gè)對(duì)象,具體是運(yùn)行時(shí)基于函數(shù)的執(zhí)行環(huán)境動(dòng)態(tài)綁定的,而非函數(shù)被聲明時(shí)的環(huán)境。原型對(duì)象上有一個(gè)屬性,該屬性指向的就是構(gòu)造函數(shù)。 1.JS面向?qū)ο蟮睦斫?面向?qū)ο蟮娜筇攸c(diǎn):繼承、封裝、多態(tài) 1、JS中通過(guò)prototype實(shí)現(xiàn)原型繼承 2、JS對(duì)象可以通過(guò)對(duì)象冒充,實(shí)現(xiàn)多重繼承, 3...

    sean 評(píng)論0 收藏0
  • JavaScript數(shù)據(jù)類(lèi)型判斷

    摘要:日常工作中經(jīng)常會(huì)有判斷數(shù)據(jù)類(lèi)型的需求,這里簡(jiǎn)單介紹下我平時(shí)判斷數(shù)據(jù)類(lèi)型的幾種方式。當(dāng)使用檢測(cè)基本類(lèi)型時(shí),會(huì)始終返回操作符確實(shí)解決了類(lèi)型判斷的問(wèn)題,但還是有一些不足之處。此外,只能返回,并不能直接返回?cái)?shù)據(jù)的類(lèi)型。 JavaScript中有5種基本數(shù)據(jù)類(lèi)型:undefined,String,Boolean,Number,Null,以及一種復(fù)雜數(shù)據(jù)類(lèi)型Object。日常工作中經(jīng)常會(huì)有判斷數(shù)據(jù)...

    luckyyulin 評(píng)論0 收藏0
  • 一名【合格】前端工程師的自檢清單

    摘要:在他的重學(xué)前端課程中提到到現(xiàn)在為止,前端工程師已經(jīng)成為研發(fā)體系中的重要崗位之一。大部分前端工程師的知識(shí),其實(shí)都是來(lái)自于實(shí)踐和工作中零散的學(xué)習(xí)。一基礎(chǔ)前端工程師吃飯的家伙,深度廣度一樣都不能差。 開(kāi)篇 前端開(kāi)發(fā)是一個(gè)非常特殊的行業(yè),它的歷史實(shí)際上不是很長(zhǎng),但是知識(shí)之繁雜,技術(shù)迭代速度之快是其他技術(shù)所不能比擬的。 winter在他的《重學(xué)前端》課程中提到: 到現(xiàn)在為止,前端工程師已經(jīng)成為研...

    羅志環(huán) 評(píng)論0 收藏0

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

0條評(píng)論

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