JavaScript中测试数据类型的方法,typeof && Object.prototype.toString.call() && constructor方法
typeof
console.log(typeof a);
console.log(typeof(true));
console.log(typeof '111');
console.log(typeof 111);
console.log(typeof NaN);
console.log(typeof null);
var str = new String();
console.log(typeof(str));
var fn = function(){};
console.log(typeof(fn));
class Box{
constructor(){
}
}
var box = new Box();
console.log(typeof box);
Object.prototype.toString.call();
console.log(Object.prototype.toString.call("aaa"));
console.log(Object.prototype.toString.call(111));
console.log(Object.prototype.toString.call(true));
console.log(Object.prototype.toString.call(undefined));
console.log(Object.prototype.toString.call(null));
console.log(Object.prototype.toString.call({name: "zhang"}));
console.log(Object.prototype.toString.call(function(){}));
console.log(Object.prototype.toString.call([]));
console.log(Object.prototype.toString.call(new Date));
console.log(Object.prototype.toString.call(/a/));
class Test{
constructor(){
}
}
var test = new Test();
console.log(Object.prototype.toString.call(test));
constructor
console.log((111).constructor.name)
console.log(("111").constructor.name)
console.log((aaa).constructor.name)
console.log((/a/).constructor.name)
console.log((true).constructor.name)
console.log(({name:"zhang"}).constructor.name)
console.log((new Date).constructor.name)
console.log(([]).constructor.name)
console.log((function(){}).constructor.name)
class Box{
constructor(){
}
}
var test = new Box();
console.log(test.constructor.name)