why is typeof [] object code example

Example: javascript typeof

exports.is = (data) => {
const isArray = Array.isArray(data) && 'array'
const isObject = data == {} && 'object'
const isNull =  data == null && 'null'

const isGrouping =  isArray || isObject || isNull
const isCheck = !isGrouping ? typeof data : isGrouping

const isTypeData = ['number','string','array','symbol','object','undefined','null','function', 'boolean']
const isMatch = isTypeData.indexOf(isCheck)
const isResult = isTypeData[isMatch]
return isResult
}