<script type="text/javascript">

         //判别一个对象属性在不在某个对象中
//in 是用于查找某个属性是否存在于对象中,它会把对象
//里面所有的内置方法全部返回 var json = {username:"pipi"};
console.log("username" in json); //true
console.log("toString" in json); //true
console.log("valueOf" in json); //true
console.log(json.constructor); //function Object();区分对象具体类型 console.log("=====================");
var date = new Date();
var arr = [];
var obj = {};
var regex = new RegExp(); console.log(date.constructor); //function Date()
console.log(arr.constructor); //function Array()
console.log(obj.constructor); //function Object()
console.log(regex.constructor); //function RegExp() /*
判断是否为数组
*/
function isArray(obj){
if(obj && typeof obj === "object"){
var con = obj.constructor.toString();
return con.indexOf("Array") != -1 ? true : false;
}
return false;
} function isArray1(obj){
return typeof obj.sort === "function";
} function isArray2(obj){
return obj != null && typeof obj === "object" && "splice" in obj && "join" in obj && "length" in obj;
} function isArray3(obj){
return obj instanceof Array;
} //ES5中提供的方法 IE678可能不支持
console.log(Array.isArray(arr)); //true
//自己定义
//prototype当做对象的方法动态扩展
Array.prototype.isArray = function(){
return this instanceof Array;
} console.log(isArray(arr)); //true
console.log(isArray1(arr)); //true
console.log(isArray2(arr)); //true
console.log(isArray3(arr)); //true //判断是否为数字
function isNumber(obj){
var num = new Number(obj);
return typeof obj === "number" && !("isNaN" in num);
} //判断是否为空
function isNull(obj){
return obj === null;
} //判断是否为undefined
function isUndefined(obj){
return obj === 0;
} //判断是不是一个日期类型
function isDate(obj){
if(obj && typeof obj === "object"){
var con = obj.constructor.toString();
return con.indexOf("Date") != -1 ? true :false;
}
return false;
} console.log(isDate(date));
/*
prototype是js为每一个对象提供的原型链
用于对象的动态扩展
*/
Array.prototype.isArray = function(){
return this instanceof Array;
} String.prototype.startWith = function(key){
return this.charAt(0) == key;
} String.prototype.endWith = function(key){
return this.charAt(this.length - 1) == key;
}
     </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. android MPAndroidChart饼图实现图例后加数字或文本(定制图例)

    转载请注明:http://blog.csdn.net/ly20116/article/details/50905789 MPAndroidChart是一个非常优秀的开源图表库,MPAndroidCha ...

  2. HTML轉PDF - 使用Pechkin套件

    剛好跟人討論到HTML轉PDF需求,便對工具進行簡單評估以備不時之需. 網路上比較多人推的是WkHtmlToPdf,如果是用.NET開發,已經有人包成NuGet套件,直接搜尋pechkin就可找到,它 ...

  3. CSS里的pointer-events属性

    现代浏览器里CSS的职责范围和JavaScript的越来越模糊分不清.比如CSS里-webkit-touch-callout属性在iOS里能禁止当用户点击时弹出气泡框.而本文要说的pointer-ev ...

  4. ++i与i++的区别

    1. ++i 和 i++,在单独使用时,就是 i=i+1. 2. a = ++i,相当于 i=i+1; a = i; (先i = i + 1,再使用i的值).也可以写成 i++; a=i 3. a = ...

  5. 对于for的一些认识

    /*▲            ▲▲            ▲▲▲            ▲▲▲▲            ▲▲▲▲▲            ▲▲▲▲▲▲*/例:如图用for嵌套打印一个三 ...

  6. 20145223《Java程序程序设计》第3周学习总结

    20145223 <Java程序设计>第3周学习总结 教材学习内容总结 第四章内容 1.类与对象 如何定义一个包含有几个值域(Field成员)就是需要我们定义一个类(Class),书上给的 ...

  7. TestNg依赖高级用法之强制依赖与顺序依赖------TestNg依赖详解(二)

    TestNg使用dependsOnGroups属性来进行依赖测试, 测试方法依赖于某个或某些方法,这个/这些方法作为前置依赖条件 强制依赖:如果被依赖的某一个方法发生了异常,那么之后的方法都不会被执行 ...

  8. 并查集 + 线段树 LA 4730 Kingdom

    题目传送门 题意:训练指南P248 分析:第一个操作可以用并查集实现,保存某集合的最小高度和最大高度以及城市个数.运用线段树成端更新来统计一个区间高度的个数,此时高度需要离散化.这题两种数据结构一起使 ...

  9. 把Actor绑定到角色的插槽上

    void AMonster::PostInitializeComponents(){ Super::PostInitializeComponents(); // instantiate the mel ...

  10. ZOJ3201 Tree of Tree(树形DP)

    题目大概求一棵树中大小为k的子树的最大权和. dp[u][k]表示以u为根的子树中包含u结点的大小为k的子树的最大权和,然后树上背包转移转移很容易.. #include<cstdio> # ...