1. <script type="text/javascript">
  2.  
  3. //判别一个对象属性在不在某个对象中
  4. //in 是用于查找某个属性是否存在于对象中,它会把对象
  5. //里面所有的内置方法全部返回
  6.  
  7. var json = {username:"pipi"};
  8. console.log("username" in json); //true
  9. console.log("toString" in json); //true
  10. console.log("valueOf" in json); //true
  11. console.log(json.constructor); //function Object();区分对象具体类型
  12.  
  13. console.log("=====================");
  14. var date = new Date();
  15. var arr = [];
  16. var obj = {};
  17. var regex = new RegExp();
  18.  
  19. console.log(date.constructor); //function Date()
  20. console.log(arr.constructor); //function Array()
  21. console.log(obj.constructor); //function Object()
  22. console.log(regex.constructor); //function RegExp()
  23.  
  24. /*
  25. 判断是否为数组
  26. */
  27. function isArray(obj){
  28. if(obj && typeof obj === "object"){
  29. var con = obj.constructor.toString();
  30. return con.indexOf("Array") != -1 ? true : false;
  31. }
  32. return false;
  33. }
  34.  
  35. function isArray1(obj){
  36. return typeof obj.sort === "function";
  37. }
  38.  
  39. function isArray2(obj){
  40. return obj != null && typeof obj === "object" && "splice" in obj && "join" in obj && "length" in obj;
  41. }
  42.  
  43. function isArray3(obj){
  44. return obj instanceof Array;
  45. }
  46.  
  47. //ES5中提供的方法 IE678可能不支持
  48. console.log(Array.isArray(arr)); //true
  49. //自己定义
  50. //prototype当做对象的方法动态扩展
  51. Array.prototype.isArray = function(){
  52. return this instanceof Array;
  53. }
  54.  
  55. console.log(isArray(arr)); //true
  56. console.log(isArray1(arr)); //true
  57. console.log(isArray2(arr)); //true
  58. console.log(isArray3(arr)); //true
  59.  
  60. //判断是否为数字
  61. function isNumber(obj){
  62. var num = new Number(obj);
  63. return typeof obj === "number" && !("isNaN" in num);
  64. }
  65.  
  66. //判断是否为空
  67. function isNull(obj){
  68. return obj === null;
  69. }
  70.  
  71. //判断是否为undefined
  72. function isUndefined(obj){
  73. return obj === 0;
  74. }
  75.  
  76. //判断是不是一个日期类型
  77. function isDate(obj){
  78. if(obj && typeof obj === "object"){
  79. var con = obj.constructor.toString();
  80. return con.indexOf("Date") != -1 ? true :false;
  81. }
  82. return false;
  83. }
  84.  
  85. console.log(isDate(date));
  1. /*
  2. prototype是js为每一个对象提供的原型链
  3. 用于对象的动态扩展
  4. */
  5. Array.prototype.isArray = function(){
  6. return this instanceof Array;
  7. }
  8.  
  9. String.prototype.startWith = function(key){
  10. return this.charAt(0) == key;
  11. }
  12.  
  13. String.prototype.endWith = function(key){
  14. return this.charAt(this.length - 1) == key;
  15. }
  1. </script>

javascript中判断对象类型的更多相关文章

  1. JavaScript中判断对象类型方法大全1

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

  2. JavaScript中判断对象类型的种种方法

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

  3. 转 JavaScript中判断对象类型的种种方法

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

  4. JavaScript中判断对象类型方法大全2

    在JavaScript中,有5种基本数据类型和1种复杂数据类型,基本数据类型有:Undefined, Null, Boolean, Number和String:复杂数据类型是Object,Object ...

  5. JavaScript中判断对象是否属于Array类型的4种方法及其背后的原理与局限性

    前言 毫无疑问,Array.isArray是现如今JavaScript中判断对象是否属于Array类型的首选,但是我认为了解本文其余的方法及其背后的原理与局限性也是很有必要的,因为在JavaScrip ...

  6. js中判断对象类型的几种方法

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

  7. JavaScript中判断变量类型最简洁的实现方法以及自动类型转换(#################################)

    这篇文章主要介绍了JavaScript中判断整字类型最简洁的实现方法,本文给出多个判断整数的方法,最后总结出一个最短.最简洁的实现方法,需要的朋友可以参考下 我们知道JavaScript提供了type ...

  8. Javascript 中判断对象为空

    发现了一个巧妙的实现: 需要检查一个对象(Object)是否为空,即不包含任何元素.Javascript 中的对象就是一个字典,其中包含了一系列的键值对(Key Value Pair).检查一个对象是 ...

  9. JavaScript中的对象类型详解

    To be finished 摘要 1.什么是对象? 2.引用类型和原始类型 3.对象数据属性拥有的特性(Attributes) 4.如何创建对象 a.直接定义 var mango={color:&q ...

随机推荐

  1. 【spring】 <tx:annotation-driven /> 的理解 【转载的】

    在使用SpringMvc的时候,配置文件中我们经常看到 annotation-driven 这样的注解,其含义就是支持注解,一般根据前缀 tx.mvc 等也能很直白的理解出来分别的作用.<tx: ...

  2. 课堂随笔 set (集合)

    1.什么是集合:set   (集合)为无序不重复的序列. 2.如何创建一个集合:(1)set()  这样就创建了一个空的集合(2)s1={11,22,33}这样也创建了一个集合.(3)s2=set([ ...

  3. SpringRMI解析4-客户端实现

    根据客户端配置文件,锁定入口类为RMIProxyFactoryBean,同样根据类的层次结构查找入口函数. <bean id="rmiServiceProxy" class= ...

  4. js-其他

  5. AngularJs优缺点

    1.优点:mvc.模块化.指令系统.双向数据绑定. 2.缺点:异步支持不好,放弃IE8.

  6. rman归档删除

    rman: delete [all] input 数据库oracle 11g 全备脚本如下:rman target /  <<EOFrun {allocate channel t1 typ ...

  7. JS小函数

    join()\toString(): join()函数和toString()函数都是返回字符串类型. 针对一个数组: var arr = ["I","love" ...

  8. HttpClient 使用

    Api支持 HttpClient 是基于Task的异步方法组,支持取消.超时异步特性,其可以分类为以下: Restful: GetAsync,PostAsync,DeleteAsync,PutAsyn ...

  9. POJ2711 Leapin' Lizards(最大流)

    比较形象的是地图每个点都拆成三个点,这三个点限制流量为0或1,于是再一分为二,这样每个点都被拆成6个点... 其实拆两个点,连容量为柱子高的边,这样就行了.. 这题我掉坑了,“1 lizard was ...

  10. Java类加载

    类的生命周期是: 在一个类编译完成之后,下一步就需要开始使用类,如果要使用一个类,肯定离不开JVM.在程序执行中JVM通过装载,链接,初始化这3个步骤完成. 类的装载是通过类加载器完成的,加载器将.c ...