<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. 廖雪峰js教程笔记6 generator一个坑 看完python在回来填坑

    generator(生成器)是ES6标准引入的新的数据类型.一个generator看上去像一个函数,但可以返回多次. ES6定义generator标准的哥们借鉴了Python的generator的概念 ...

  2. Codeforces Round #356 (Div. 2)-B

    B. Bear and Finding Criminals 链接:http://codeforces.com/contest/680/problem/B There are n cities in B ...

  3. node.js整理 01代码的组织和部署

    模块 require(函数) 用于在当前模块中加载和使用别的模块,传入一个模块名,返回一个模块导出对象. 模块名可使用相对路径(以./开头),或者是绝对路径(以/或C:之类的盘符开头:注意单个模块名默 ...

  4. http://www.cnblogs.com/baizhanshi/p/5593431.html

    http://www.cnblogs.com/baizhanshi/p/5593431.html

  5. JavaScript定时器

    定时器 开启定时器 Setinterval间隔型    每隔一段时间重复的执行 SetTimeout延时型   只执行一次 两种定时器的区别 <!DOCTYPE html> <htm ...

  6. 请将 php.ini 中的 short_open_tag 设置为 On,否则无法继续安装。

    安装的wamp套件,访问http://localhost/Discuz/install/index.PHP进行安装操作,提示 对不起,请将 php.ini 中的 short_open_tag 设置为 ...

  7. EF框架step by step(1)—Database-First

    ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,现已经包含在 Visual Studio 2008 S ...

  8. OA

    OA(政府) http://zw.wuzhitong.com/oa_wuzhitong/index.asp http://www.wuzhitong.com/Information_ZW.html O ...

  9. Javascript小括号“()”的多义性

    摘要:本文主要介绍JavaScript中小括号有五种语义. Javascript中小括号有五种语义 语义1,函数声明时参数表 function func(arg1,arg2){ // ... } 语义 ...

  10. float的元素脱离文档流,但不完全脱离,只是提升了半层;

    float的元素脱离文档流,但不完全脱离,只是提升了半层: