检测数据类型的方法 instanceof typeof 终极检测类型 Object.prototype.toString.call()
检测数据类型的方法:
1.instanceof
2.typeof
3. 终极检测类型 Object.prototype.toString.call()
=======================================
1.instanceof 检测出来的返回值是一个布尔值 可以检测复杂数据类型/引用型数据类型Object function
(但是无法准确检测Arrary类型 =>检测出来是Object类型)
2. typeof 检测出来的返回值是基本数据类型(但无法检测null =>检测出来是Object)
(这两种相对缺陷 检测类型不准确)
3.终极检测类型 Object.prototype.toString.call()
// function Father() {
// this.sing = function () {
// // console.log("我是父级");
// };
// }
// const zjl = new Father();
// zjl.sing();
// console.log(zjl instanceof Father); //true
// console.log(zjl instanceof Object); //true
// console.log(zjl instanceof Array); //false
// console.log(Array instanceof Object); //true Array检测出来的类型是Object
// console.log([1, 4, 5, 7] instanceof Object); // true
// console.log([1, 4, 5, 7] instanceof Array); // true
//===========
// console.log(Object.prototype.toString.call(1)); // [object Number]
// console.log(Object.prototype.toString.call("我是字符串")); //[object String]
// console.log(Object.prototype.toString.call(undefined)); //[object Undefined]
// console.log(Object.prototype.toString.call(null)); //[object Null]
// console.log(Object.prototype.toString.call(true)); //[object Boolean]
// console.log(Object.prototype.toString.call({})); //[object Object]
// console.log(Object.prototype.toString.call(function () {})); //[object Function]
// console.log(Object.prototype.toLocaleString.call(NaN)); //NaN
// console.log(Object.prototype.toString.call(Number)); //[object Function]
// console.log(Object.prototype.toString.call(String)); //[object Function]