javascript类型判断(typeof instanceof ,toStirng.call())
来源:互联网 发布:java做计算器界面 编辑:程序博客网 时间:2024/06/05 05:00
javascript类型判断(typeof instanceof ,toStirng.call())
对typeof instanceof Object.prototype.toString.call(),比较
最近写代码时遇到了对一个变量是arry还是String进行判断,开始使用typeof,发现有问题,来了兴致就把这个方面都研究了下.
typeof
function testTypeof(){var str ="aa";var obj = {};var num = 99;var bl = true;var nu = null;var und ;function Person(name){ this,name = name;};var person = new Person("aa");var arr = [];var data = Date.now();var reExp = /\[bc\]at/i;var fu = function fu(){};console.log(typeof str ); //Stringconsole.log(typeof str=='object' ); //falseconsole.log(typeof obj ); //objectconsole.log(typeof str=='object' ); //falseconsole.log(typeof num ); //numberconsole.log(typeof str=='object' ); //falseconsole.log(typeof bl ); //booleanconsole.log(typeof str=='object' ); //falseconsole.log(typeof nu ); //objectconsole.log(typeof str=='object' ); //falseconsole.log(typeof und ); //undefinedconsole.log(typeof str=='object' ); //falseconsole.log(typeof person ); //objectconsole.log(typeof str=='object' ); //falseconsole.log(typeof arr ); //objectconsole.log(typeof str=='object' ); //falseconsole.log(typeof data ); //numberconsole.log(typeof str=='object' ); //falseconsole.log(typeof reExp ); //objectconsole.log(typeof str=='object' ); //falseconsole.log(typeof fu ); //functionconsole.log(typeof str=='object' ); //false}
- 总结:在基本类型 String,Number,boolean,undefined function 类型判断时可以使用
instanceof
function testInstanceof(){ var str ="aa"; var obj = {}; var num = 99; var bl = true; var nu = null; var und ; function Person(name){ this,name = name; }; var person = new Person("aa"); var arr = []; var data = Date.now(); var reExp = /\[bc\]at/i; var fu = function fu(){}; console.log(str instanceof String); //false console.log(str instanceof Object); //false console.log(obj instanceof Object); //true console.log(num instanceof Number); //false console.log(num instanceof Object); //false console.log(bl instanceof Boolean); //false console.log(bl instanceof Object); //false console.log( nu instanceof Object ); //false console.log(und instanceof Object ); //false console.log(person instanceof Person ); //true console.log(person instanceof Object ); //true console.log(arr instanceof Array); //true console.log(arr instanceof Object ); //true// console.log(data instanceof Data); //false console.log(data instanceof Object); //false // console.log(reExp instanceof ReExp ); //false console.log(reExp instanceof Object ); //true console.log(fu instanceof Function); //true, console.log(fu instanceof Object); //true}
- 总结:如上所看,instanceof 在引用类型方面使用比较合适,原始object,自定义对象,Function,特别是自定义对象
Object.prototype.toString.call()
function testStirngCall(){ var str ="aa"; var obj = {}; var num = 99; var bl = true; var nu = null; var und ; function Person(name){ this,name = name; }; var person = new Person("aa"); var arr = []; var data = Date.now(); var reExp = /\[bc\]at/i; var fu = function fu(){}; console.log(Object.prototype.toString.call(str)); //[object String] console.log(Object.prototype.toString.call(obj)); //[object Object] console.log(Object.prototype.toString.call(num)); //[object Number] console.log(Object.prototype.toString.call(bl)); // [object Boolean] console.log(Object.prototype.toString.call(nu)); //[object Null] console.log(Object.prototype.toString.call(und)); //[object Undefined] console.log(Object.prototype.toString.call(person)); // [object Object] console.log(Object.prototype.toString.call(arr)); // [object Array] console.log(Object.prototype.toString.call(data)); // [object Number] console.log(Object.prototype.toString.call(reExp)); // [object RegExp] console.log(Object.prototype.toString.call(json)); // [object Function]}
- 除了自定义对像person,不能识别,其他都能识别,完胜
总结:自定义对像( var person = new Person())用instanceof ,其他使用String.prototype.toString().call(),这样才能尽可能的避免问题
0 0
- javascript类型判断(typeof instanceof ,toStirng.call())
- javascript类型判断 typeof instanceof constructor
- javascript类型判断 typeof instanceof constructor
- typeof constructor instanceof 判断类型
- typeof、instanceof、Object.prototype.toString.call() 区分对象类型
- TypeScript 强制类型转换和类型判断 typeof,instanceof
- Javascript - typeof & instanceof
- Javascript TypeOf InstanceOf
- Javascript typeof 和instanceof
- javascript typeof instanceof
- 判断js中的类型:typeof / instanceof / constructor / prototype
- js中的类型判断typeof、instanceof、constructor和prototype
- 判断变量的类型(typeof、instanceof、Object.prototype.toString)
- typeof + instanceof+toString+constructor是如何判断javascript数据类型的
- JavaScript之检测类型(typeof与instanceof)
- 判断数据类型:typeof和instanceof
- JS类型判断typeof PK {}.toString.call(obj);
- typeof和toString.call()和instanceof
- 手工植锡(BGA芯片植锡)
- 如何在一台全新的Windows7电脑上架设起Chrome+XX_Net的上网渠道
- char与byte的区别
- 无题
- 二叉搜索树
- javascript类型判断(typeof instanceof ,toStirng.call())
- 在CentOS6.4 yum 线上升级 php5.3.3 至 PHP5.6 .24
- 第八周项目二--建立链串的算法库
- 简单日历
- 清除浮动的4种方式
- Git教程前言
- NotSerializableException,序列化的实体类的构造方法里不能传Context
- nginx源代码分析 - 生成的Makefile解析
- 进程模型