instanceof
- instanceof 用于判断一个对象的构造函数是什么?(判断数据类型的)
- 语法:
对象 instanceof 构造函数
- 对象 instanceof 原型链上的任何一个构造函数,都会得到true ```javascript // function Person() {
// } // let p = new Person()
// console.log(p instanceof Person) // true 对象 instanceof 构造函数 // console.log(p instanceof Object) // true 对象 instanceof 原型链上的任何构造函数都是true
let arr = [3, 4, 5] // let arr = new Array(3, 4, 5) // console.log(arr instanceof Array) // true // console.log(arr instanceof Object) // true
// 数组 instanceof Array|Object true // 对象 instanceof Array false
// if (arr instanceof Array) { if (Array.isArray(arr)) { console.log(‘是数组’) } else if (arr instanceof Object) { console.log(‘是对象’) } else { console.log(‘其他类型’) }
使用typeof和instanceof判断数据类型:
```javascript
function abc() {
}
// console.log(typeof 'hello')
// console.log(typeof 123)
// console.log(typeof undefined)
// console.log(typeof true)
// console.log(typeof abc) // function
// console.log(typeof null) // object
// console.log(typeof []) // object
// console.log(typeof {}) // object
function myTypeOf(n) {
if (typeof n === 'string' || typeof n === 'number' || typeof n === 'boolean' || typeof n === 'undefined' || typeof n === 'function') {
return typeof n
} else {
// 说明变量是 null 、[] 、{} 中的一个
if (n instanceof Array) {
return 'array'
} else if (n instanceof Object) {
return 'object'
} else {
return 'null'
}
}
}
console.log(myTypeOf(123))
console.log(myTypeOf('hello'))
console.log(myTypeOf(true))
console.log(myTypeOf(undefined))
console.log(myTypeOf(abc))
console.log(myTypeOf(null))
console.log(myTypeOf([]))
console.log(myTypeOf({}))
// ------------------------------------------------------
function myTypeOf(n) {
switch (typeof n) {
case 'string':
case 'number':
case 'boolean':
case 'undefined':
case 'function':
return typeof n
default:
if (n instanceof Array) {
return 'array'
} else if (n instanceof Object) {
return 'object'
} else {
return 'null'
}
}
}
console.log(myTypeOf(123))
console.log(myTypeOf('hello'))
console.log(myTypeOf(true))
console.log(myTypeOf(undefined))
console.log(myTypeOf(abc))
console.log(myTypeOf(null))
console.log(myTypeOf([]))
console.log(myTypeOf({}))