typeof 、Object.prototype.toString和 instance…

2018-06-24 00:08:38来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

数据类型

js 基本类型包括:Undefined  symbol null string boolean number

js 引用类型包括:object array Date RegExp


 

typeof

我们一般用typeof来判断数据的类型的

接下来我们试试

console.log(typeof undefined)  //undefined
console.log(typeof null)          //object
console.log(typeof Undefined)  //undefined
console.log(typeof Null)         //undefined
console.log(typeof '123')         //string
console.log(typeof 123)           //number
console.log(typeof true)          //boolean
console.log(typeof {a:123})    //object
console.log(typeof (new Date))   //object
console.log(typeof function(){})   //function
console.log(typeof Infinity)      //number
console.log(typeof NaN)          //number
console.log(typeof Number(1))  //number
console.log(typeof Symbol('foo'))    //symbol
console.log(typeof Symbol())        //symbol
console.log(typeof [1,2,3])      //object
</script>

typeof 是一个操作符,主要的目的是检测一个变量是不是基本数据类型的变量,同时也可以说是确定一个变量是字符串,数值,布尔值,还是undefined
的最佳工具。

上面很明显对于引用类型的判断只返回object,并不能反应是哪种数据类型

这样就引出了另一个判断数据类型的方法


Object.prototype.toString

console.log(Object.prototype.toString.call("jerry"));//[object String]
console.log(Object.prototype.toString.call(12));//[object Number]
console.log(Object.prototype.toString.call(true));//[object Boolean]
console.log(Object.prototype.toString.call(undefined));//[object Undefined]
console.log(Object.prototype.toString.call(null));//[object Null]
console.log(Object.prototype.toString.call({name: "jerry"}));//[object Object]
console.log(Object.prototype.toString.call(function(){}));//[object Function]
console.log(Object.prototype.toString.call([]));//[object Array]
console.log(Object.prototype.toString.call(new Date));//[object Date]
console.log(Object.prototype.toString.call(/\d/));//[object RegExp]
function Person(){};
console.log(Object.prototype.toString.call(new Person));//[object Object]

instanceof

 instanceof 就是判断一个实例是否属于某种类型

 

// 判断 foo 是否是 Foo 类的实例
function Foo(){} 
var foo = new Foo(); 
console.log(foo instanceof Foo)//true

还有一些特殊的

console.log(Object instanceof Object);//true 
console.log(Function instanceof Function);//true 
console.log(Number instanceof Number);//false 
console.log(String instanceof String);//false 
 
console.log(Function instanceof Object);//true 
 
console.log(Foo instanceof Function);//true 
console.log(Foo instanceof Foo);//false

这个知识点就和原型链,具体请看

http://www.cnblogs.com/wangfupeng1988/p/3977987.html

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:回调函数

下一篇:[js高手之路]设计模式系列课程-设计一个模块化扩展功能(define)