<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. Jmeter之Badboy录制脚本及简化脚本http请求(三)

    测试脚本的精简对于测试来说是一项基础的能力,因为你得看懂一行脚本代表的是什么意思,是怎么运行的,做了什么内容.才能得到对应的测试结果分析. 上一节介绍的代理服务器的录制童鞋们也明白了,有点麻烦,而且不 ...

  2. ubuntu安装shadowshocks-qt5

    sudo add-apt-repository ppa:hzwhuang/ss-qt5 sudo apt-get update sudo apt-get install shadowsocks-qt5 ...

  3. HTTP 请求方式: GET和POST的比较(转)

    GET和POST是HTTP的两个常用方法.   什么是HTTP? 超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议 ...

  4. 20145223《Java程序程序设计》第1周学习总结

    20145223 <Java程序设计>第1周学习总结 教材学习内容总结 1.JDK.JRE以及JVM的区别 JDK:撰写java程序语言的时候需要用到的编译工具 JRE:java执行环境 ...

  5. Y86模拟器安装

    Y86模拟器安装 这周需要学习Y86下的指令集开发,Y86和x86可以说是孪生兄弟,但是还是存在着一些小的差别.接下来介绍如何进行linux-debian平台下的Y86模拟器安装. 虚拟机VMware ...

  6. json解析不推荐使用eval

    推荐使用JSON.parse() 低版本浏览器(IE6/7)不支持此方法,可以通过网上下载json2.js,引入到文件中,此文件通过判断浏览器是否支持JSON.parse()方法,如果不支持,文件中编 ...

  7. git 学习笔记1--config & help

    1. config 配置用户名和邮箱: git config --global user.name 'pzdn2009' git config --global user.email 10502441 ...

  8. django base.html

    <!DOCTYPE html> <html> <head> <title>{% block title %}默认标题{% endblock %} - 自 ...

  9. Storm编译打包过程中遇到的一些问题及解决方法

    作者: 大圆那些事 | 文章可以转载,请以超链接形式标明文章原始出处和作者信息 网址: http://www.cnblogs.com/panfeng412/archive/2013/11/30/som ...

  10. HDU 2838 (DP+树状数组维护带权排序)

    Reference: http://blog.csdn.net/me4546/article/details/6333225 题目链接: http://acm.hdu.edu.cn/showprobl ...