黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 6種判斷數據類型的方法

6種判斷數據類型的方法

更新時間:2022-09-22 09:09:22 來源:動力節點 瀏覽1546次

大家都知道,Java中有八大基本數據類型,那么,判斷數據類型的方法有哪些?動力節點小編來告訴大家。

1.instanceof()

只能用來判斷變量的原型鏈上是否有構造函數的prototype屬性(兩個對象是否屬于原型鏈的關系),不一定能獲取對象的具體類型

Instanceof 不適用判斷原始類型的值,只能用于判斷對象是否從屬關系

原理:因為A instanceof B 可以判斷A是不是B的實例,返回一個布爾值,由構造類型判斷出數據類型

分析:[].proto 的原型 是指向Array.prototype 的,說明兩個對象是屬于同一條原型鏈的,返回true

console.log(arr instanceof Array ); // true
console.log(date instanceof Date ); // true
console.log(fn instanceof Function ); // true
//注意: instanceof 后面一定要是對象類型,大小寫不能寫錯,該方法試用一些條件選擇或分支
// 空對象的判斷問題
let obj1 = {}
console.log(obj1 instanceof Object) // true
let obj2 = Object.create(null)
console.log(obj2 instanceof Object) // false 
let obj3 = Object.create({})
console.log(obj3 instanceof Object) // true

2.typeof()

適用于判斷除了null外的基礎類型和function

可以判斷數據類型,它返回表示數據類型的字符串(返回結果只能包括number,boolean,string,function,object,undefined)

可以使用typeof判斷變量是否存在(如if(typeof a!=“undefined”){…})

無法判斷對象和數組,兩者都返回object

typeof '5' // string
typeof 5 // number
typeof null // object 因為null被認為是空對象
typeof undefined // undefined
typeof true // boolean
typeof Symbol('5') // symbol
typeof 5n // bigint
typeof new Object(); // object
typeof new Function(); // function
或者
console.log(typeof([1,2])); //object
console.log(typeof(6)); //number
console.log(typeof(true)); //boolean

3.根據對象的contructor判斷

原理:每一個實例對象都可通過constructor來訪問它的構造函數,其實也是根據原型鏈的原理來的。

構造函數屬性判斷,返回一個布爾值。

由于undefined和null是無效的對象,因此是沒有constructor屬性的,這兩個值不能用這種方法判斷。

console.log(arr.constructor === Array); //true
//或
let a = [1,2]
console.log(a.constructor === Function); //false
'5'.__proto__.constructor === String // true
[5].__proto__.constructor === Array // true
undefined.__proto__.constructor // Cannot read property '__proto__' of undefined 
null.__proto__.constructor // Cannot read property '__proto__' of undefined

4.通過Object下的toString.call()方法來判斷

Object.prototype.toString方法返回對象的類型字符串,因此可用來判斷一個值的類型。

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

所有的數據類型都可以使用此方法進行檢測,且非常精準。

返回一個布爾值。

console.log(toString.call('123')); //[object String]
console.log(toString.call(undefined)); //[object Undefined]
console.log(toString.call({})); //[object Object]
console.log(toString.call([])); //[object Array]
Object.prototype.toString.call('5') // [object String]
Object.prototype.toString.call(5) // [object Number]
Object.prototype.toString.call([5]) // [object Array]
Object.prototype.toString.call(true) // [object Boolean]
Object.prototype.toString.call(undefined) // [object Undefined]
Object.prototype.toString.call(null) // [object Null]
Object.prototype.toString.call(new Function()); // [object Function]
Object.prototype.toString.call(new Date()); // [object Date]
Object.prototype.toString.call(new RegExp()); // [object RegExp]
Object.prototype.toString.call(new Error()); // [object Error]

5.isArray()判斷是否為數組

ES5方法,返回一個布爾值。

var a = [1,2];
console.log(Array.isArray(a)); //true

6.jq中判斷數據類型的方法

jQuery提供了一系列工具方法,用來判斷數據類型,以彌補JavaScript的typeof運算符的不足。以下方法對參數進行判斷,返回一個布爾值。

jQuery.isArray() //是否為數組
jQuery.isEmptyObject() //是否為空對象 (不含可枚舉屬性)。
jQuery.isFunction() //是否為函數
jQuery.isNumberic() //是否為數字
jQuery.isPlainObject() //是否為使用“{}”或“new Object”生成對象,而不是瀏覽器原生提供的對象。
jQuery.isWindow() //是否為window對象;
jQuery.isXMLDoc() //判斷一個DOM節點是否處于XML文檔中。

 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美另类videos粗暴黑人 | 91国自产精品中文字幕亚洲 | 伊人精品成人久久综合欧美 | 国产不卡一区二区视频免费 | 被多人强伦的小柔小说片段 | 最近中文字幕免费完整国语 | 又色又爽又黄的视频网站 | 欧美日韩中文一区 | 欧美综合影院 | 中文字幕网站在线观看 | 亚洲美女激情 | 91午夜精品亚洲一区二区三区 | 亚洲国产欧美日韩 | 三级黄色片免费看 | 综合 欧美 国产 视频二区 | 97婷婷狠狠成为人免费视频 | 99ri国产精品 | 边做边叫床的大尺度床戏欧美 | 又爽又大又光又色的午夜视频 | 免费无遮挡啪啪羞羞漫画 | 欧美激情一区二区三区 | 狠狠r| 最近中文免费字幕在线播放 | 日日噜噜夜夜狠狠久久丁香婷婷 | 国产精品国产精品国产三级普 | 亚洲性生活视频 | 日韩亚洲一区中文字幕 | 色婷婷色综合激情国产日韩 | 日韩欧美中文字幕出 | 91人前露出精品国产 | 免费黄色的网站 | 一边脱一边摸一边揉免费 | 欧美一区亚洲二区 | 最近2019年中文字幕一页 | 日韩在线伦理片免费观看 | 免费在线你懂的 | 国产成人精品免费视频动漫 | 花蝴蝶亚洲一区二区三区 | 亚洲波多野结衣日韩在线 | 亚洲欧美日韩网站 | 大陆黄色网 |