1. 程式人生 > >js 型別檢測(typeof進行檢測)

js 型別檢測(typeof進行檢測)

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);
				}
			}