js 型別檢測(typeof進行檢測)
阿新 • • 發佈:2018-11-22
1.js中的基本型別:
字串、數字、布林、物件、Null、Undefined。而物件是個比較複雜的型別,其中又可以分為陣列,函式與物件
2.檢測
利用typeof來進行資料型別檢測。它可以檢測出來的資料型別有:string,number,boolean,function,undefined,object。陣列,null與{}經過其轉換後返回值都為object。所以重點就是怎麼區分陣列,null與{}
程式碼如下:
function typeTest (obj) { var result = typeof obj if (result === 'object') { // object if (Array.isArray(obj)) { // 區分陣列 console.log('array') } else { for (var item in obj) { // 區分有屬性的物件 console.log('object') return false } if (!obj) { // 區分null console.log('null') } else { // 區分{} console.log('{}') } } } else { console.log(result) // 基本型別 } }
檢測:
typeTest('111') // string
typeTest(123) // number
typeTest(true) // boolean
typeTest(typeTest) // function
typeTest(undefined) // undefined
typeTest(NaN) // number
typeTest([1,2]) // array
typeTest({'a': 1, 'b': 2}) // object
typeTest(null) // null
typeTest({}) // {}
檢測資料是否有值的小工具(檢測的型別包括:字串,數字,物件,陣列;返回布林值):
function isValue (variable) { var typeStr = typeof variable; if (typeStr === 'object') { if (Array.isArray(variable)) { // 陣列 return Boolean(variable.length); } else { for (var item in variable) { // 有屬性的物件 return true; } return false; // {}或者null的情況 } } else { return Boolean(variable); } }