js 判断对象类型
在企业级的开发中,我们常用 typeof 来判断企业 对象类型;但是 typeof 不能判断 Array 和 null
这里我们使用一个 原型上的 toString方法;请看一下代码:
<script>
var allType = {
"[object Array]" : "Array",
"[object String]" : "String",
"[object Function]" : "Function",
"[object Boolean]" : "Boolean",
"[object Number]" : "Number",
"[object Object]" : "Object",
"[object Undefined]" : "Undefined"
};
function MyTypeOf(obj) {
if (obj === null) {
return "null";
}
var res = Object.prototype.toString.call(obj);//使用 Object 原型链上的 toString 方法
return allType[res];
} function myTypeOf(obj) { var type = typeof (obj);
if (obj === null) {
return "null";
} else if (type === "object") {
var res = Object.prototype.toString.call(obj);//使用 Object 原型链上的 toString 方法
return allType[res];
}else {
return type
} } var a = [ 1, 2, 3 ];
var b = "aa";
var c = function() {
};
var d = true;
var e = 1;
var f = {};
var g = undefined;
var h = null; console.log(MyTypeOf(a));
console.log(MyTypeOf(b));
console.log(MyTypeOf(c));
console.log(MyTypeOf(d));
console.log(MyTypeOf(e));
console.log(MyTypeOf(f));
console.log(MyTypeOf(g));
console.log(MyTypeOf(h));
console.log("******************************************")
console.log(typeof (a));//object Array失败
console.log(typeof (b));//string String 成功
console.log(typeof (c));//function function 成功
console.log(typeof (d));//boolean boolean 成功
console.log(typeof (e));//number number 成功
console.log(typeof (f));//object object 成功
console.log(typeof (g));//undefined undefined 成功
console.log(typeof (h));//object null 失败
console.log("******************************************");
console.log(myTypeOf(a));
console.log(myTypeOf(b));
console.log(myTypeOf(c));
console.log(myTypeOf(d));
console.log(myTypeOf(e));
console.log(myTypeOf(f));
console.log(myTypeOf(g));
console.log(myTypeOf(h));
</script>
myTypeOf 函数 可以实现 判断对象的类型;这里使用了原型链上的toString的方法:Object.prototype.toString.call(obj);来实现类型的判断
myTypeOf和 MyTypeOf 实现的功能是一样的;myTypeOf略有优化
js 判断对象类型的更多相关文章
- JS判断对象类型
对于确定JS内置对象类型,JS提供了typeof运算符,该运算符得到的结果为以下6种:number,boolean,string,function,object,undefined.不过对绝大多数对象 ...
- html5 -js判断undefined类型
js判断undefined类型 今天使用showModalDialog打开页面,返回值时.当打开的页面点击关闭按钮或直接点浏览器上的关闭则返回值是undefined所以自作聪明判断 var reVal ...
- js判断浏览器类型 js判断ie6不执行
js判断浏览器类型 $.browser 对象 $.browser.version 浏览器版本 var binfo = ''; if ($.browser.msie) { binfo = " ...
- js判断undefined类型,undefined,null,NaN的区别
js判断undefined类型 今天使用showModalDialog打开页面,返回值时.当打开的页面点击关闭按钮或直接点浏览器上的关闭则返回值是undefined 所以自作聪明判断 ...
- js验证对象类型
js验证对象类型 1. Object.prototype.toString.call() 这是最佳解决方案,可以用作通用方式处理.各种类型的判断依据类似于[object Object],替换的是后边的 ...
- js判断undefined类型,undefined,null, 的区别详细解析
js判断undefined类型 今天使用showModalDialog打开页面,返回值时.当打开的页面点击关闭按钮或直接点浏览器上的关闭则返回值是undefined所以自作聪明判断 var reVal ...
- js判断undefined类型
js判断undefined类型 if (reValue== undefined){ alert("undefined"); } 发现判断不出来,最后查了下资料要用ty ...
- Js判断对象是否为空,Js判断字符串是否为空
Js判断对象是否为空,Js判断字符串是否为空,JS检查字符串是否为空字符串 >>>>>>>>>>>>>>>&g ...
- 通过JS判断联网类型和连接状态
通过JS判断联网类型和连接状态 中国的移动网络环境复杂,为了给用户带去更好访问体验,开发者希望能了解用户当前的联网方式,然后给用户一个符合当前网络环境的请求结果. W3C的规范中给出了一个方法来获得现 ...
随机推荐
- Linux进程的虚拟存储器知识点
http://blog.csdn.net/yxccc_914/article/details/52665713 用libreoffice画表真时有点蛋疼,效率很低.. 深入理解计算机系统->虚拟 ...
- VERITAS NETBACKUP运维手册(自制)
ps:本文为目录.详情请点如下目录超链接 1 VERITAS NETBACKUP介绍 1.1 NBU基本概念 1.2 配置存储单元 1.3 配置备份策略(Policy) 1.4 配置NetBackup ...
- 高级vim 配置
[root@chenbj ~]# pwd /root [root@chenbj ~]# cat .vimrc set nocompatible set pastetoggle=<F9> s ...
- React后台管理系统-用户列表页面
1.页面的结构 //遍历list, 返回数据 let listBody= this.state.list.map((user,index)=> { return ...
- 2018年ElasticSearch6.2.2教程ELK搭建日志采集分析系统(目录)
章节一 2018年 ELK课程计划和效果演示 1.课程安排和效果演示 简介:课程介绍和主要知识点说明,ES搜索接口演示,部署的ELK项目演示 章节二 elasticSearch 6.2版本基础讲解到 ...
- idea右侧的工具栏不见,包括maven以及其他
通用,设置后右侧工具栏可见 可以通过view-->windows tool看到maven的
- k8s的储存方式简述
pod中的存储卷类型:1.emptyDir:用于临时储存空间,无持久性储存功能,生命周期同pod容器,pod删除后,数据不再存在.2.gitRepo:pod创建时,自动将云端仓库中的文件克隆到pod挂 ...
- 快速搭建FTP服务
Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令 rpm -qa | grep vsftpd 来查看是否安装相应的包 ...
- ATM-db-dnhandler
import os,jsonfrom conf import settings def select(name): user_path = os.path.join(settings.BASE_DB, ...
- vue.js 独立引用css文件图片路径错误
vue的环境是用vue-cli,写在vue文件的图片引用build之后的路径都没什么问题 但是有的时候我们会有一些公共的css文件单独的放在assets目录下 如下图所示 这里当build后发现写在c ...