javascript中判断对象类型
<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中判断对象类型的更多相关文章
- JavaScript中判断对象类型方法大全1
我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...
- JavaScript中判断对象类型的种种方法
我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...
- 转 JavaScript中判断对象类型的种种方法
我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...
- JavaScript中判断对象类型方法大全2
在JavaScript中,有5种基本数据类型和1种复杂数据类型,基本数据类型有:Undefined, Null, Boolean, Number和String:复杂数据类型是Object,Object ...
- JavaScript中判断对象是否属于Array类型的4种方法及其背后的原理与局限性
前言 毫无疑问,Array.isArray是现如今JavaScript中判断对象是否属于Array类型的首选,但是我认为了解本文其余的方法及其背后的原理与局限性也是很有必要的,因为在JavaScrip ...
- js中判断对象类型的几种方法
我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...
- JavaScript中判断变量类型最简洁的实现方法以及自动类型转换(#################################)
这篇文章主要介绍了JavaScript中判断整字类型最简洁的实现方法,本文给出多个判断整数的方法,最后总结出一个最短.最简洁的实现方法,需要的朋友可以参考下 我们知道JavaScript提供了type ...
- Javascript 中判断对象为空
发现了一个巧妙的实现: 需要检查一个对象(Object)是否为空,即不包含任何元素.Javascript 中的对象就是一个字典,其中包含了一系列的键值对(Key Value Pair).检查一个对象是 ...
- JavaScript中的对象类型详解
To be finished 摘要 1.什么是对象? 2.引用类型和原始类型 3.对象数据属性拥有的特性(Attributes) 4.如何创建对象 a.直接定义 var mango={color:&q ...
随机推荐
- apk签名(不打包)
apk提交给应用市场加固后,需要重新签名 签名工具:360签名 下载地址:http://yunpan.cn/cm8GqVWL7Y8Eh 签名步骤:http://jiagu.360.cn/qcms/he ...
- error: bad symbolic reference. A signature in HiveContext.class refers to term hive
在spark-shell中执行val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)报错: error: bad symbolic ...
- JAVA Day6
1.对象:用来描述客观事物的一个实体,由一组属性和方法组成 2.属性--对象具有的各种特征 *每个对象的每个属性都拥有特定值 *例如:张浩和李明的年龄.姓名不一样 3.方法--对象执行的操 ...
- hdu2859 dp
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2859 题意:输入一个数n,接下来是一个由n*n个字母组成的矩阵,求以左下到右上的线为轴的最 ...
- IE下Array.prototype.slice.call(params,0)
i8 不支持 Array.prototype.slice.call(params,0) params可以是 HTMLCollection.类数组.string字符串
- java中的IO操作总结
一.InputStream重用技巧(利用ByteArrayOutputStream) 对同一个InputStream对象进行使用多次. 比如,客户端从服务器获取数据 ,利用HttpURLConnect ...
- 纯JavaScripst的全选、全不选、反选 【转】
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- [深入浅出WP8.1(Runtime)]浮出控件(Flyout)
4.15 浮出控件(Flyout) 浮出控件(Flyout)是一个轻型的辅助型的弹出控件,通常会作为提示或者要求用户进行相关的交互来使用.Flyout控件与Windows Phone里面的弹出框Mes ...
- 【BZOJ】2956: 模积和
题意 求\(\sum_{i=1}^{n} \sum_{j=1}^{m} (n \ mod \ i)(m \ mod \ j)[i \neq j] \ mod \ 19940417\), \((n, m ...
- 【BZOJ】1119: [POI2009]SLO
题意 长度为\(n(1 \le n \le 1000000)\)的账单,\(+\)表示存1,\(-\)表示取1,任意时刻存款不会为负.初始有\(p\),最终有\(q\).每一次可以耗时\(x\)将某位 ...