javascript 如何判断一个对象的类型

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script type="text/javascript">
var class2type = {
    ‘[object Boolean]‘ : ‘boolean‘,
    ‘[object Number]‘ : ‘number‘,
    ‘[object String]‘ : ‘string‘,
    ‘[object Function]‘ : ‘function‘,
    ‘[object Array]‘ : ‘array‘,
    ‘[object Date]‘ : ‘date‘,
    ‘[object RegExp]‘ : ‘regexp‘,
    ‘[object Object]‘ : ‘object‘,
    ‘[object Error]‘ : ‘error‘
};
function type( obj ) {
    if ( obj == null ) {
        return obj + "";
    }
    return typeof obj === "object" || typeof obj === "function" ?
        class2type[ toString.call(obj) ] || "object" :
        typeof obj;
};
function Foo() {}
function Bar() {}
Bar.prototype = new Foo();
var foo = new Foo();
var bar = new Bar();
console.log(type(‘‘));
console.log(type(undefined));
console.log(type(null));
console.log(type(true));
console.log(type(false));
console.log(type(1));
console.log(type(0));
console.log(type(new String(‘foo‘)));
console.log(type(new Number(10)));
console.log(type({}));
console.log(type(new Date()));
console.log(type(new Error()));
console.log(type([1,2,3] ));
console.log(type(new Array(1, 2, 3)));
console.log(type(new Function("") ));
console.log(type(/abc/g));
console.log(type(new RegExp("meow")));
console.log(type(new Object()));
console.log(type(foo));
console.log(type(bar));
console.log(type(/abc/g));
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script type="text/javascript">
var class2type = {
    ‘[object Boolean]‘ : ‘boolean‘,
    ‘[object Number]‘ : ‘number‘,
    ‘[object String]‘ : ‘string‘,
    ‘[object Function]‘ : ‘function‘,
    ‘[object Array]‘ : ‘array‘,
    ‘[object Date]‘ : ‘date‘,
    ‘[object RegExp]‘ : ‘regexp‘,
    ‘[object Object]‘ : ‘object‘,
    ‘[object Error]‘ : ‘error‘
};
function type( obj ) {
    if ( obj == null ) {
        return obj + "";
    }
    return typeof obj === "object" || typeof obj === "function" ?
        class2type[ toString.call(obj) ] || "object" :
        typeof obj;
};
console.log(typeof null);
console.log(class2type[ toString.call(null) ] );
console.log(type(null));
console.log(typeof undefined);
console.log(class2type[ toString.call(undefined) ] );
console.log(type(undefined));
</script>
</body>
</html>
object type.html:26
undefined type.html:27
null type.html:28
undefined type.html:29
undefined type.html:30
undefined 
时间: 2024-10-27 18:51:37

javascript 如何判断一个对象的类型的相关文章

JavaScript中判断一个对象是否为&quot;空对象”

JavaScript中判断一个对象是否为"空对象" 这里指的"空对象"是类似于:{ } 和 new Object() 这样的. 具体的代码实现和原理如下: // 所谓"空对象",即不包括任何可枚举(自定义)的属性.简而言之,就是该对象没有属性可以通过for...in迭代. // for-in循环会同时枚举非继承属性和从原型对象继承的属性,如果有,则立即返回false,否则默认返回true. isEmptyObject: function (obj

javascript如何判断一个对象是否是窗口

<!DOCTYPE html> <html> <head> </head> <body> <script type="text/javascript"> function isWindow( obj ) { /* jshint eqeqeq: false */ return obj != null && obj == obj.window; }; function test(){ console.l

javascript——可以判断值的类型的函数

function classof(o){ return Object.prototype.toString.call(0).slice(8,-1); } Function.prototype.getName= function () { return this.name ||this.toString().match(/function\s*([^()*]\(/)[1]; }; function type(o){ var t, c,n;//type class name if(o===null)

JavaScript中判断变量类型最简洁的实现方法(#################################)

这篇文章主要介绍了JavaScript中判断整字类型最简洁的实现方法,本文给出多个判断整数的方法,最后总结出一个最短.最简洁的实现方法,需要的朋友可以参考下 我们知道JavaScript提供了typeof运算符,因此最容易想到的是用typeof来判断是否是number类型. 复制代码代码如下: 1 2 3 function isNumber(obj) {     return typeof obj === 'number' } 这个函数对于整数和浮点数都没有问题,但对于NaN值也返回true这让

JavaScript中判断为整数的多种方式

原文:JavaScript中判断为整数的多种方式 之前记录过JavaScript中判断为数字类型的多种方式,这篇看看如何判断为整数类型(Integer). JavaScript中不区分整数和浮点数,所有数字内部都采用64位浮点格式表示.但实际操作中比如数组索引.位操作则是基于32位整数. 方式一.使用取余运算符判断 任何整数都会被1整除,即余数是0.利用这个规则来判断是否是整数. function isInteger(obj) { return obj%1 === 0 } isInteger(3

(转)JavaScript中判断对象类型的种种方法

我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一个说明运算数类型的字符串.如:"number","string","boolean","object","function","undefined"(可用于判断变量是否存在). 但 type

javascript判断一个对象是否是空对象,localStorage和sessionStorage区别

判断一个对象是否是空对象: var obj ={}; 1. if(JSON.stringify(newobj)=="{}"){ console.log('kongduixiang')  }else{ console.log('hehe')  } 2. if(Object.keys(newobj).length == 0){ console.log('kongduixiang'); } localStorage和sessionStorage区别: localStorage和session

怎么判断一个对象是不是数组类型?

前面<变量的赋值和对象的赋值>中有用到typeof运算符去判断运算数的类型,结果如下: alert(typeof 1); // 返回字符串"number" alert(typeof "1"); // 返回字符串"string" alert(typeof true); // 返回字符串"boolean" alert(typeof {}); // 返回字符串"object" alert(typeof

JavaScript客户端判断文件类型及大小

<html><head><title>潜水式无堵塞排污泵</title> <meta http-equiv="content-type" content="text/html;charset=gb2312"></head><body>以下是一个客户端控制file上传图片类型和大小的示例(注意:由于是客户端限制,所以用户可以绕过这个限制):<script language=&qu