亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript之類型檢測

2019-11-06 07:14:28
字體:
來源:轉載
供稿:網友

判斷javaScript數據類型,也就是我們說的類型檢測,有五種方法:分別是typeof運算符,instanceof操作符,Object.PRototype.toString方法,constructor屬性,duck type,這部分我推薦大家看看阮大大寫的Javascript標準參考教程

使用typeof檢測對象類型:

typeo作為最常用的檢測類型的方法,返回字符串類型,適合函數對象和基本類型(JavaScripe中的基本類型:number,string,boolean,null,undefined,object[對象])的判斷

typeof 100 //"number"typeof true //"boolean"typeof function //"function"typeof undefined //"undefined"typeof new Object() //"object"typeof [1,2] //"object"typeof NaN //"number"typeof null //"object"

可以看到,對于最基本的類型可以測試出類型,但對于其他的,包括日期,數組等大多都返回object類型,而且null也返回的是object類型,也就是沒有辦法知道確切的類型

使用instanceof檢測對象類型:

obj instanceof Object:左邊操作數obj為對象(如果不小心寫成基本類型,比如數字啥的,就會返回false),右邊操作數Object為函數對象或者是函數構造器,否則拋出TypeError

實質就是:instanceof操作符判斷左操作數對象的原型鏈上是否有右邊這個構造函數的prototype屬性,也就是說指定對象是否是某個構造函數的實例,最后返回布爾值,這個對整個原型鏈上的對象都是有效的,由于instanceof對整個原型鏈上的對象都有效,因此同一個實例對象,可能會對多個構造函數都返回true!

[1,2] instanceof Array //truenew Object() instanceof Array /false

再某些ie版本中存在跨iframe問題,每個iframe下都有自己的一套原型鏈,跨frame實例化的對象彼此是不共享原型鏈,所以不同window或iframe間的對象類型檢測不能使用instanceof!!!

使用Object.prototype.toString方法:

Object.prototype.toString.apply([]); //"[object Array]"Object.prototype.toString.apply(function(){}) //"[object Function]"Object.prototype.toString.apply(null) //"[object Null]"Object.prototype.toString.apply(undefined) //"[object Undefined]"http://IE/7/8的Object.protope.toString.apply(null) //[object Object]"

使用constructor屬性:

所有實例對象都有constructor屬性,constructor屬性指向prototype對象所在的構造函數,就是說指向創建這個實例的構造函數,還是推薦阮大大的文章,看這個constructor屬性

使用duck type(鴨子類型):

比如判斷一個對象是否是數組,可以看這個對象是否擁有length()等方法,不禁想到類數組轉數組的方法,看這里類數組轉數組了

JavaScript之類型檢測的總結:

1.typeof:適合基本類型和function檢測,遇到null失效

2.通過{}.toString拿到,適合內置對象和基本類型,遇到null和undefined失效

3.instanceof:適合自定義對象,也可以用來檢測原生對象,在不同iframe和window間檢測時失效

來看一道面試題:怎么判斷一個變量類型是不是數組?

1.通過constructor(不推薦使用):

[].constructor===Array //true

2.通過instanceof:

[] instanceof Array //true

在頁面中含多個窗體或者iframe,那么會產生很多執行環境,一個iframe下的數組不是另一個窗體下構造函數的實例,那么如果出現這種極端條件,instanceof也不推薦使用

3.通過Array.isArray:

//在新版瀏覽器,IE9+都已經實現了原生方法:Array.isArray([1,2]); //true

4.通過toSting:

Object.prototype.toString.call([]) === '[object Array]'
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性猛交xxxx| 亚洲视频在线视频| 2019精品视频| 久久影视电视剧凤归四时歌| 福利视频一区二区| 欧美激情在线观看| 国产精品视频白浆免费视频| 国产欧美日韩中文字幕| 超碰日本道色综合久久综合| 国产视频精品va久久久久久| 亚洲精品电影网在线观看| 久久影视电视剧凤归四时歌| 亚洲女人被黑人巨大进入| 黄色成人av网| 国产精品午夜国产小视频| 日韩电影第一页| 日韩在线观看电影| 97色在线观看免费视频| 欧美久久精品一级黑人c片| 亚洲成色777777在线观看影院| 国产成人综合精品在线| 国产人妖伪娘一区91| 欧美激情精品久久久久久久变态| 国产精品扒开腿做爽爽爽男男| 欧美性视频精品| 成人黄色在线播放| 色综合亚洲精品激情狠狠| 亚洲一区二区三区香蕉| 性色av一区二区三区在线观看| 欧美国产日韩一区二区在线观看| 欧美精品xxx| 大胆欧美人体视频| 日产精品久久久一区二区福利| 韩国视频理论视频久久| 国产精品久久久久久久久久免费| 国产成人91久久精品| 欧美精品在线免费| 中文字幕欧美视频在线| 欧美另类老肥妇| 国产精品欧美日韩一区二区| 1769国产精品| 欧美黑人又粗大| 91精品国产综合久久香蕉的用户体验| 中文在线不卡视频| 久久久精品影院| 久久在线视频在线| 亚洲日本欧美中文幕| 国产精品久久久久秋霞鲁丝| 国产精品极品尤物在线观看| 国产精品视频最多的网站| 国产福利视频一区二区| 亚洲色图偷窥自拍| www.日韩视频| 欧美另类暴力丝袜| 亚洲视频777| 国产精品美女久久| 国产精品久久久久高潮| 91精品国产成人| 欧美成aaa人片免费看| 精品久久久久久久久久久| 91免费的视频在线播放| 日韩在线精品视频| 久久久久久午夜| 大量国产精品视频| 欧美性少妇18aaaa视频| 亚洲精品自在久久| 日韩欧美综合在线视频| 国产91色在线|免| 亚洲精品视频久久| 国内精品国产三级国产在线专| 欧美成人网在线| 97久久久久久| 中文字幕亚洲专区| 亚洲精品一区二区三区不| 911国产网站尤物在线观看| 原创国产精品91| 91av在线影院| 欧美午夜性色大片在线观看| 欧美高跟鞋交xxxxhd| 欧美日韩性视频| 亚洲人成伊人成综合网久久久| 欧美激情精品久久久久久变态| 日韩激情视频在线| 欧美激情精品久久久久久大尺度| 国产精品91在线观看| 亚洲精品视频二区| 亚洲社区在线观看| 欧美人交a欧美精品| 久久中国妇女中文字幕| 精品国产一区二区三区久久狼黑人| 欧美日韩福利在线观看| 日韩美女视频中文字幕| 日韩va亚洲va欧洲va国产| 综合av色偷偷网| 国产精品美女无圣光视频| 国产精品久久久久久久午夜| 午夜精品久久久久久久白皮肤| 国产精品直播网红| 日本久久久久久| 91性高湖久久久久久久久_久久99| 精品视频在线观看日韩| 国产丝袜一区二区三区| 欧美成人精品一区二区| 91久久久久久久| 亚洲成人久久一区| 久久综合免费视频| 国产成人综合精品| 亚洲风情亚aⅴ在线发布| 欧美午夜宅男影院在线观看| 精品精品国产国产自在线| 色综合视频网站| 欧美激情精品久久久久久| 国产欧美精品在线| 中文.日本.精品| 亚洲国产高潮在线观看| 北条麻妃在线一区二区| 日韩国产一区三区| 亚洲性av在线| 国产精品日韩欧美| 欧美性高潮在线| 亚洲精品日韩久久久| 黑人巨大精品欧美一区二区一视频| 国产xxx69麻豆国语对白| 精品国产一区二区三区在线观看| 亚洲第一av在线| 亚洲国产美女久久久久| 日韩精品久久久久久久玫瑰园| 精品久久久91| 国产午夜精品麻豆| 久久久久久69| 国产成人啪精品视频免费网| 麻豆一区二区在线观看| 国产成人精品在线播放| 在线观看精品国产视频| 国产精品www网站| 日韩电影第一页| 亚洲一区中文字幕| 91精品视频大全| 日韩精品视频观看| 日韩精品免费在线| 国产精品高潮粉嫩av| 欧美成人黑人xx视频免费观看| 97超级碰在线看视频免费在线看| 久久免费视频在线观看| 亚洲精品中文字| 伊人伊成久久人综合网小说| 午夜精品蜜臀一区二区三区免费| 欧美日韩精品在线播放| 日韩欧美一区二区三区| 欧美亚洲在线播放| 亚洲欧洲成视频免费观看| 国产精品高清在线观看| 理论片在线不卡免费观看| 国产精品一区二区三区久久| 国内精品久久久久影院优| 国产精品中文在线| 最新日韩中文字幕| 久久69精品久久久久久久电影好| 成人性生交大片免费观看嘿嘿视频| 国产精品日韩欧美大师| 热久久免费视频精品| 免费91在线视频| 成人av资源在线播放| 欧美成在线观看|