您的位置:首页 > 移动开发 > Objective-C

js instanceof、typeof、Object.prototype.toString.call(obj)的用法和区别

2018-03-12 16:39 816 查看
js里instanceof和typeof、Object.prototype.toString.call()方法都可以用来判断变量的类型。
1、instanceof    官方文档说明:
instanceof
 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 
prototype
 属性。
    语法:object instanceof constructor    instanceof 运算符用来判断 constructor.prototype 是否存在object的原型链上。function A(){};
function B(){};
var a = new A();
a instanceof A; //true
a instanceof B; //false2、typeof    语法:typeof variable 或 typeof(variable)    官方文档说明:
typeof
操作符返回一个字符串,指示未经计算的操作数的类型。
   下表总结了
typeof
可能的返回值。
类型结果
Undefined
"undefined"
Null
"object"
Boolean
"boolean"
Number
"number"
String
"string"
Symbol (ECMAScript 6 新增)
"symbol"
宿主对象(由JS环境提供)Implementation-dependent
函数对象([[Call]] 在ECMA-262条款中实现了)
"function"
任何其他对象
"object"
typeof 无法判断 array。
3、Object.prototype.toString.call(obj)        Object.prototype.toString.call(obj)返回obj的类型字符串。    语法:function A(){};
var a = new A()
Object.prototype.toString.call(a)
//result:"[object Object]"
Object.prototype.toString.call(A)
//result:"[object Function]"
Object.prototype.toString.call(1)
//result:"[object Number]"
Object.prototype.toString.call('a')
//result:"[object String]"
Object.prototype.toString.call()
//result:"[object Undefined]"
var b = [1,2,3]
Object.prototype.toString.call(b)
//result:"[object Array]"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: