js获取或判断任意数据类类型的通用方法(getDataType)和将NodeList转为数组(NodeListToArray)
function getDataType(any)
{
/* (1) Object.prototype.toString.call 方法判断类型:
优点:通用,返回"[object String]" 具体object的类型
缺点:不能返回继承的类型
(2)typeof x
缺点:对object类型不能细分;
优点:对空null的判断 'undefined'的应用;
返回类型有:'undefined' “string” 'number' 'boolean' 'function' 'object'
(3) instanceof 能返回具体的类型,只适用于用new关键字创建的对象进行判断
*/
// var baseType=["string","number","boolean"];//基本类型
// var refType=["object", "Function","Array","Date"];//引用类型
try
{
var dtype=Object.prototype.toString.call(any);
if(dtype=="[object Object]") //IE,某个dom元素对象
{
try
{
if(any.constructor)
{
var constructorStr=any.constructor.toString(); //obj.constructor可以返回继承的类型
if(constructorStr.indexOf("Array")!=-1) { dtype="[object Array]"; }
else
if(constructorStr.indexOf("HTMLCollection")!=-1) { /* IE */ dtype="[object NodeList]"; }
else
if((constructorStr.indexOf("function")!=-1) && (constructorStr.indexOf("Object()")!=-1))
{
dtype="[object Object]";
}
else
dtype=constructorStr;
}
}
catch(e)
{
return "[object Null]";
}
}
else
{
if(dtype=="[object HTMLCollection]") { /* FF */ dtype="[object NodeList]"; }
}
return dtype;
}catch(e)
{
return "variable is not defined.";
}
}
//将NodeList转为数组,使NodeList可以使用数组的全部方法
function NodeListToArray(nodes) {
var array = null;
try{
array = Array.prototype.slice.call(nodes,0);
}catch(ex){
array = new Array();
for(var i = 0,len = nodes.length;i < len;i++) {
array.push(nodes[i]);
}
}
return array;
}
/* //测试 getDataType 方法
var aa=null;
alert(getDataType(aa));
var abc;
alert(getDataType(abc)); //[object Undefined] 说明此变量已经声明,但尚未被初始化
var fn=function(){}
alert(getDataType(fn)); //[object Function]
alert(getDataType(new Object())); //[object Object]
alert(getDataType("Hello"));//[object String]
alert(getDataType(234));//[object Number]
alert(getDataType(true));//[object Boolean]
alert(getDataType(new Date())); //[object Date]
alert(getDataType(new Date().getTime())); //[object Number]
alert(getDataType(document.getElementById("demopic"))); //[object HTMLDivElement]
var nodelist=NodeListToArray(document.getElementsByTagName("*"));
alert(getDataType(nodelist)); //[object Array]
alert(getDataType(document.getElementsByTagName("*"))); //[object NodeList)]
//alert(nodelist[10].tagName);
alert(getDataType(/[a-z]/)); //[object RegExp]
*/
js获取或判断任意数据类类型的通用方法(getDataType)和将NodeList转为数组(NodeListToArray)的更多相关文章
- js获取及判断键盘按键的方法
这篇文章主要介绍了js获取及判断键盘按键的方法,涉及JavaScript键盘事件的获取及键值的判定技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了js获取及判断键盘按键的方法.分享 ...
- Token验证的流程及如何准确的判断一个数据的类型
Token验证的流程: 1,客户端使用用户名跟密码请求登录:2,服务端收到请求,去验证用户名与密码:3,验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端:4,客户端收到 T ...
- Js获取后台集合List的值和下标的方法
Js获取后台集合List的值和下标的方法 转载自:http://blog.csdn.net/XiaoKanZheShiJie/article/details/47280449 首先用的是struts2 ...
- JS获取form表单数据
以下代码可放在一个js文件中,以便通用: //获取指定表单中指定标签对象 function getElements(formId, label) { var form = document.getEl ...
- html中通过js获取接口JSON格式数据解析以及跨域问题
前言:本人自学前端开发,一直想研究下js获取接口数据在html的实现,顺利地找到了获取数据的方法,但是有部分接口在调用中出现无法展示数据.经查,发现时跨域的问题,花费了一通时间,随笔记录下过程,以方便 ...
- js获取及判断按键的方法
js 里面的键盘事件经常用到,所以收集了键盘事件对应的键码来分享下: keyCode 8 = BackSpace BackSpace keyCode 9 = Tab Tab keyCode 12 = ...
- JS获取到时间转换成字符串类型
JS获取到时间格式为:/Date(1479279579047)/ 提供一个函数可将其转换为“yyyy-MM-dd”和“yyyy-MM-dd hh:mm:ss” //时间日期转换成string func ...
- js获取异步方法里面的数据
这里介绍 五种方法(说白了本质 就三种) 1.callback回调函数 function getData(callback){ setTimeout(()=>{ let name = '哈哈 ...
- js获取上一页、当前页及域名url方法,JS反回上一页的方法
<html> <head> <title>js获取上一页url,js获取前一页地址,javascripts获取上一页url,javascript获取前一页地址< ...
随机推荐
- 织梦dedecms模板制作时,循环递增autoindex使用方法整理
文章转载:http://www.maihui123.com/dedecms/2012051964.html 织梦dedecms模板制作时,我们需要每循环一次,变量加一,这是就需要使用到autoinde ...
- Spring的IOC原理 通俗解释
1. IoC理论的背景我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑. 图1:软件系统中耦合的对象 如果我们打开机械 ...
- class<T>和 class<?>类型 有什么区别
平时看java源代码的时候,如果碰到泛型的话,我想? T K V E这些是经常出现的,但是有时想不起来代表什么意思,今天整理下: ? 表示不确定的java类型. T 表示java类型. K V 分别代 ...
- sentinel服务器出现大量的连接问题【转载】
一.问题现象 redis服务端的sentinel模块存在大量的established状态的连接,并且这些连接一直不被释放,而客户端的连接数正常. 二.问题排查过程 1.根据连接状态进行推断 服务端存在 ...
- Opencv 入门学习之图片人脸识别
读入图片,算法检测,画出矩形框 import cv2 from PIL import Image,ImageDraw import os def detectFaces(image_name): im ...
- [UE4]ChildActor组件
ChildActor组件可以让一个actor成为另外actor的组成部分,并在视图中展示出来.
- 激活函数sigmoid、tanh、relu、Swish
激活函数的作用主要是引入非线性因素,解决线性模型表达能力不足的缺陷 sigmoid函数可以从图像中看出,当x向两端走的时候,y值越来越接近1和-1,这种现象称为饱和,饱和意味着当x=100和x=100 ...
- 从线性回归到CNN【转】
原地址:http://zhangliliang.com/2014/06/14/from-lr-to-cnn/ csdn: http://blog.csdn.net/t0903/article/d ...
- win 关闭正在使用的端口
1.Windows平台 在windows命令行窗口下执行: 1.查看所有的端口占用情况 C:\>netstat -ano 2.查看指定端口的占用情况 C:\>netstat -aon|fi ...
- Pycharm code templates自定义
Settings>Editor>Code Style>File and Code Templates python script>>>> # 模板变量 ${P ...