typeof对于基础类型,函数,undefined都可以识别打印。
但对于数组,对象,null,Date都会认为是object,识别不准确。
console.log(typeof(3))
console.log(typeof('England'))
console.log(typeof(true))
console.log(typeof(undefined))
console.log(typeof(()=>{}))
console.log(typeof([1,2,3]))
console.log(typeof({}))
console.log(typeof(null))
console.log(typeof(new Date))
//这个方法可以展示元素的类型
console.log(Object.prototype.toString.call([])) //[object Array]
自己写的myType
function myType(obj) {
//8正好是类型单词的第一个字母位置,到-1,但不包括-1位置上的右括号
let a = Object.prototype.toString.call(obj).slice(8,-1)
console.log(a)
}
console.log(myType(3))
console.log(myType('England'))
console.log(myType(true))
console.log(myType(undefined))
console.log(myType(()=>{}))
console.log(myType([1,2,3]))
console.log(myType({}))
console.log(myType(null))
console.log(myType(new Date))