电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

JavaScript判斷數(shù)據(jù)類型有幾種方法及區(qū)別介紹

瀏覽:86日期:2023-06-17 11:44:21

有五種數(shù)據(jù)判斷類型方法typeof 、instanceof、constructor、Object.prototype.toString.call()、jquery.type()

一、typeof方法

typeof是個(gè)操作符,可以判斷基本數(shù)據(jù)類型(返回的結(jié)果只能是number,string,boolean,null,symbol,function,object)返回值分以下幾種對(duì)于基本類型。除了null值返回object以外,其他均返回正確的結(jié)果對(duì)于引用值來說,除了function返回function類型,其他都返回object類型例:

console.log( typeof 100, //'number' typeof ’abc’, //'string' typeof false, //'boolean' typeof undefined, //'undefined' typeof null, //'object' typeof [1,2,3], //'object' typeof {a:1,b:2,c:3}, //'object' typeof function(){console.log(’aaa’);}, //'function' typeof new Date(), //'object' typeof /^[a-zA-Z]{5,20}$/, //'object' typeof new Error() //'object' typeof new Number(100), //’object’ typeof new String(’abc’),// ’string’ typeof new Boolean(true),//’boolean’)

二、instanceof方法

一般用來檢測(cè)引用數(shù)據(jù)類型,表達(dá)式為:A instanceof B,判斷A是否是B的實(shí)例,如果 A 是 B 的實(shí)例,則返回 true,否則返回 false,由構(gòu)造類型判斷出數(shù)據(jù)類型

console.log( 100 instanceof Number, //false ’dsfsf’ instanceof String, //false false instanceof Boolean, //false undefined instanceof Object, //false null instanceof Object, //false [1,2,3] instanceof Array, //true {a:1,b:2,c:3} instanceof Object, //true function(){console.log(’aaa’);} instanceof Function, //true new Date() instanceof Date, //true /^[a-zA-Z]{5,20}$/ instanceof RegExp, //true new Error() instanceof Error //true)//注意: instanceof 后面一定要是對(duì)象類型,大小寫不能寫錯(cuò),該方法試用一些條件選擇或分支

還需要注意null和undefined都返回了false,這是因?yàn)樗鼈兊念愋途褪亲约罕旧恚⒉皇荗bject創(chuàng)建出來它們,所以返回了false。

三、constructor方法

constructor是prototype對(duì)象上的屬性,指向構(gòu)造函數(shù),

var num = 123;var str = ’abcdef’;var bool = true;var arr = [1, 2, 3, 4];var json = {name:’wenzi’, age:25};var func = function(){ console.log(’this is function’); }var und = undefined;var nul = null;var date = new Date();var reg = /^[a-zA-Z]{5,20}$/;var error= new Error();function Person(){ }var tom = new Person();// undefined和null沒有constructor屬性console.log( tom.constructor==Person, num.constructor==Number, str.constructor==String, bool.constructor==Boolean, arr.constructor==Array, json.constructor==Object, func.constructor==Function, date.constructor==Date, reg.constructor==RegExp, error.constructor==Error);//所有結(jié)果均為true

注意:除了undefined和null之外,其他類型都可以通過constructor屬性來判斷類型

方法四:Object.prototype.toString 方法

用來檢測(cè)對(duì)象類型

var toString = Object.prototype.toString;toString.call(123); //'[object Number]'toString.call(’abcdef’); //'[object String]'toString.call(true); //'[object Boolean]'toString.call([1, 2, 3, 4]); //'[object Array]'toString.call({name:’wenzi’, age:25}); //'[object Object]'toString.call(function(){ console.log(’this is function’); }); //'[object Function]'toString.call(undefined); //'[object Undefined]'toString.call(null); //'[object Null]'toString.call(new Date()); //'[object Date]'toString.call(/^[a-zA-Z]{5,20}$/); //'[object RegExp]'toString.call(new Error()); //'[object Error]'

toString是Object原型對(duì)象上的一個(gè)方法,該方法默認(rèn)返回其調(diào)用者的具體類型更嚴(yán)格的講,是 toString運(yùn)行時(shí)this指向的對(duì)象類型, 返回的類型格式為[object,xxx],xxx是具體的數(shù)據(jù)類型,其中包括:String,Number,Boolean,Undefined,Null,F(xiàn)unction,Date,Array,RegExp,Error,HTMLDocument等等都可以通過這個(gè)方法獲取到

5、無敵萬能的方法:jquery.type()

如果對(duì)象是undefined或null,則返回相應(yīng)的“undefined”或“null”。

jQuery.type( undefined ) === 'undefined'jQuery.type() === 'undefined'jQuery.type( window.notDefined ) === 'undefined'jQuery.type( null ) === 'null'

如果對(duì)象有一個(gè)內(nèi)部的[[Class]]和一個(gè)瀏覽器的內(nèi)置對(duì)象的 [[Class]] 相同,我們返回相應(yīng)的 [[Class]] 名字

jQuery.type( true ) === 'boolean'jQuery.type( 3 ) === 'number'jQuery.type( 'test' ) === 'string'jQuery.type( function(){} ) === 'function'jQuery.type( [] ) === 'array'jQuery.type( new Date() ) === 'date'jQuery.type( new Error() ) === 'error' // as of jQuery 1.9jQuery.type( /test/ ) === 'regexp'

其他一切都將返回它的類型“object”。6 . 自己也可以封裝一個(gè)獲取變量準(zhǔn)確類型的函數(shù)

function gettype(obj) { var type = typeof obj; if (type !== ’object’) { return type; } //如果不是object類型的數(shù)據(jù),直接用typeof就能判斷出來 //如果是object類型數(shù)據(jù),準(zhǔn)確判斷類型必須使用Object.prototype.toString.call(obj)的方式才能判斷 return Object.prototype.toString.call(obj).replace(/^[object (S+)]$/, ’$1’);}

總結(jié)

到此這篇關(guān)于JavaScript判斷數(shù)據(jù)類型有幾種方法及區(qū)別介紹的文章就介紹到這了,更多相關(guān)js 判斷數(shù)據(jù)類型內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 宁波普瑞思邻苯二甲酸盐检测仪,ROHS2.0检测设备,ROHS2.0测试仪厂家 | 山东聚盛新型材料有限公司-纳米防腐隔热彩铝板和纳米防腐隔热板以及钛锡板、PVDF氟膜板供应商 | 综合管廊模具_生态,阶梯护坡模具_检查井模具制造-致宏模具厂家 | 置顶式搅拌器-优莱博化学防爆冰箱-磁驱搅拌器-天津市布鲁克科技有限公司 | 重庆私家花园设计-别墅花园-庭院-景观设计-重庆彩木园林建设有限公司 | 宝元数控系统|对刀仪厂家|东莞机器人控制系统|东莞安川伺服-【鑫天驰智能科技】 | 定时排水阀/排气阀-仪表三通旋塞阀-直角式脉冲电磁阀-永嘉良科阀门有限公司 | 脉冲布袋除尘器_除尘布袋-泊头市净化除尘设备生产厂家 | 课件导航网_ppt课件_课件模板_课件下载_最新课件资源分享发布平台 | 苏州工作服定做-工作服定制-工作服厂家网站-尺品服饰科技(苏州)有限公司 | 代做标书-代写标书-专业标书文件编辑-「深圳卓越创兴公司」 | 考勤系统_人事考勤管理系统_本地部署BS考勤系统_考勤软件_天时考勤管理专家 | 浇注料-高铝砖耐火砖-郑州凯瑞得窑炉耐火材料有限公司 | 柔性测斜仪_滑动测斜仪-广州杰芯科技有限公司 | 安徽华耐泵阀有限公司-官方网站| 石家庄律师_石家庄刑事辩护律师_石家庄取保候审-河北万垚律师事务所 | 天津仓储物流-天津电商云仓-天津云仓一件代发-博程云仓官网 | 一点车讯-汽车网站,每天一点最新车讯! | 合景一建-无尘车间设计施工_食品医药洁净车间工程装修总承包公司 | 亚洲工业智能制造领域专业门户网站 - 亚洲自动化与机器人网 | 浙江红酒库-冰雕库-气调库-茶叶库安装-医药疫苗冷库-食品物流恒温恒湿车间-杭州领顺实业有限公司 | 月嫂_保姆_育婴_催乳_母婴护理_产后康复_养老护理-吉祥到家家政 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | 闪蒸干燥机-喷雾干燥机-带式干燥机-桨叶干燥机-[常州佳一干燥设备] | 芝麻黑-芝麻黑石材厂家-永峰石业 | 成都顶呱呱信息技术有限公司-贷款_个人贷款_银行贷款在线申请 - 成都贷款公司 | 胶水,胶粘剂,AB胶,环氧胶,UV胶水,高温胶,快干胶,密封胶,结构胶,电子胶,厌氧胶,高温胶水,电子胶水-东莞聚力-聚厉胶粘 | 泵阀展|阀门展|水泵展|流体机械展 -2025上海国际泵管阀展览会flowtech china | 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | 西安微信朋友圈广告投放_微信朋友圈推广_西安度娘网络科技有限公司 | 黄石妇科医院_黄石东方女子医院_黄石东方妇产医院怎么样 | 媒介云-全网整合营销_成都新闻媒体发稿_软文发布平台 | 外观设计_设备外观设计_外观设计公司_产品外观设计_机械设备外观设计_东莞工业设计公司-意品深蓝 | 冷油器,取样冷却器,热力除氧器-连云港振辉机械设备有限公司 | 老城街小面官网_正宗重庆小面加盟技术培训_特色面馆加盟|牛肉拉面|招商加盟代理费用多少钱 | 哔咔漫画网页版在线_下载入口访问指引 | 千斤顶,液压千斤顶-力良企业,专业的液压千斤顶制造商,shliliang.com | lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 无缝方管|无缝矩形管|无缝方矩管|无锡方管厂家 | 自动配料系统_称重配料控制系统厂家| 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 老房子翻新装修,旧房墙面翻新,房屋防水补漏,厨房卫生间改造,室内装潢装修公司 - 一修房屋快修官网 |