js中typeof和instanceof的区别
来源:互联网 发布:php读取json内容 编辑:程序博客网 时间:2024/06/01 07:37
typeof和instanceof都可以用来判断变量,它们的用法有很大区别:
1.typeof()会返回一个变量的基本类型,只又一下几种:
number,boolean,string,object,undefined,function;
typeof("abc");//"string"typeof(10);//"number"typeof(false);//"boolean"typeof({});//"object"typeof(a);;//"object"typeof(function a(){});//"function"
2.instanceof返回的是一个布尔值:
var a=[];a instanceof Array;//true
注意:
instanceof只能用来判断对象和函数,不能用来判断字符串和数字等
var b="123";b instanceof String;//false//这里的b是一个字符串,但是也会返回false
在这里instanceof还有一个重要的用法,那就是可以用来判断数组
因为typeof()这个方法不适用于来判断数组,因为不管是数组还是对象,都会返回object
typeof([]);//"object"typeof({});//"object"
方法一:constructor属性(constructor:构造函数;构造器;建造者)
当我们使用js的时候系统会默认加上一个constructor,constructor 属性返回对创建此对象的数组函数的引用。
var arr = [1,2,3]; //创建一个数组对象arr.prototype.constructor = Array; //这一句是系统默认加上的arr.constructor==Array;//true
方法二:instanceof
instanceof是检测对象的原型链是否指向构造函数的prototype对象的,所以我们也可以用它来判断:
[] instanceof Array;//true
判断一个元素是不是数组:
//判断数组的方法一: var arr = [1,2,3]; function isArray(obj){ //判断obj类型是否为object if(typeof(obj)=="object"){ //如果obj.constructor为Ayyay则为数组,否则为对象 if(obj.constructor==Array){ console.log(obj+"是一个数组"); }else{ console.log(obj+"是一个对象"); } } }; isArray(arr);
//判断数组的方法二: var arr1 = [4,5,6]; function isArray1(obj){ if(obj instanceof Array){ console.log(obj+"是一个数组"); }else{ console.log(obj+"不是一个数组"); } } isArray1(arr1);
0 0
- js中typeof和instanceof的区别
- js中typeof和instanceof的区别
- js中instanceof和typeof的区别
- js中typeof和instanceof的区别
- js中typeof和instanceof的区别
- JS中typeof和instanceof的区别
- js中typeof和instanceof的区别
- js中typeof和instanceof的区别。
- js中typeof和instanceof用法区别
- js中typeof和instanceof用法区别
- js中typeof和instanceof用法区别
- js中typeof和instanceof的简单区别
- JS中typeof与instanceof的区别
- JS中typeof与instanceof的区别
- JS中instanceof跟typeof的区别
- JS中typeof与instanceof的区别
- JS中typeof与instanceof的区别
- JS中typeof与instanceof的区别
- Android爬坑之旅:软键盘挡住输入框问题的终极解决方案
- @RequestBody, @ResponseBody 注解详解
- Java实现冒泡排序
- 数据库水平分表
- POJ1696-Space Ant(凸包)
- js中typeof和instanceof的区别
- Java 获取本机的ip和主机名
- SEM经验-1
- webpack
- frame和iframe的区别
- NVIDIA图形处理单元(GPU)驱动安装指南
- Spring中获取配置文件中getBean,有2中方式,beanFactory和application,俩者之间的区别
- Ubuntu 更改mac地址
- 课堂学习——巡逻的士兵