fun();
function fun() {
let a = ''
let b = 11
let c = true
let d = undefined
let e = null
let f = Symbol('qqqq')
let func = function (){}
let arr = []
let obj = {}
// typeof不能判断类型有三种 null array object
console.log(1,typeof a) // 1, string √
console.log(2,typeof b) // 2, number √
console.log(3,typeof c) // 3, boolean √
console.log(4,typeof d) // 4, undefined √
console.log(5,typeof e) // 5, object ×
console.log(6,typeof f) // 6, symbol √
console.log(7,typeof func)// 7, function √
console.log(8,typeof arr) // 8, object ×
console.log(9,typeof obj) // 9, object ×
// instanceof不能判断字面量创建的基础类型,引用数据类型都可以判断
console.log('instanceof//////////////////////////////////')
console.log(a instanceof String); // ×
console.log(b instanceof Number); // ×
console.log(c instanceof Boolean); // ×
console.log(new String('') instanceof String); // √
console.log(new Number(11) instanceof Number); // √
console.log(new Boolean(true) instanceof Boolean); // √
// console.log(null instanceof Null);
//console.log(undefined instanceof Undefined);
console.log(arr instanceof Array); // √
console.log(func instanceof Function); // √
console.log(obj instanceof Object); // √
// constructor基础数据类型,应用数据类a型全判断
console.log('constructor//////////////////////////////////')
console.log(a.constructor === String);
console.log(b.constructor === Number);
console.log(c.constructor === Boolean);
//console.log((null).constructor === Null);
//console.log((undefined).constructor === Undefined);
console.log(arr.constructor === Array);
console.log(func.constructor === Function);
console.log(obj.constructor === Object);
// Object.prototype.toString 类型全判断
console.log('Object.prototype.toString//////////////////////////////////')
console.log(Object.prototype.toString.call(a) === '[object String]');
console.log(Object.prototype.toString.call(b) === '[object Number]');
console.log(Object.prototype.toString.call(c) === '[object Boolean]');
console.log(Object.prototype.toString.call(null) === '[object Null]');
console.log(Object.prototype.toString.call(undefined) === '[object Undefined]');
console.log(Object.prototype.toString.call(arr) === '[object Array]');
console.log(Object.prototype.toString.call(func) === '[object Function]');
console.log(Object.prototype.toString.call(obj) === '[object Object]');
}
console