首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
Web开发
> 详细
JS中有哪些识别类型的方法
时间:
2015-10-18 00:57:22
阅读:
227
评论:
0
收藏:
0
[点我收藏+]
标签:
//1.使用typeof..
//无需封装直接使用.
//可以识别标志类型(null除外)
//不可识别具体的对象类型
typeof
(1);
//"number"
typeof
(
""
);
//"string"
typeof
([]);
//"object"
typeof
({});
//"object"
typeof
(
null
);
//"object"
typeof
(undefined);
//"undefined"
//2.instanceof
//无须封装使用
//能够判别内置对象类型
[]
instanceof
Array;
//true
/\d/
instanceof
RegExp;
//true
//不能判别原始类型
1
instanceof
Number;
//false
"xiaohong"
instanceof
String;
//false
//能够判别自定义类型
function
Point(x, y) {
this
.x = x;
this
.y = y;
}
var
c =
new
Point(2,3);
c
instanceof
Point;
//true
//3.Object.prototype.toString.call()方法.
Object.prototype.toString.call(21);
//"[object Number]"
Object.prototype.toString.call([]);
//"[object Array]"
//为了方便使用一般都是使用函数封装如下
function
typePrototype(obj) {
return
Object.prototype.toString.call(obj).slice(8,-1);
}
typePrototype(
"guo"
);
//"String"
typePrototype({});
//"Object"
//可以识别标准类型,及内置对象类型
//不能识别自定义类型
//4.constuructor指向构造这个对象的构造函数本身..
//可判别原始类型
"guo"
.constructor === String;
//true
(1).constructor === Number;
//true
true
.constructor === Boolean;
//true
({}).constructor === Object;
//true
//可判别内置对象类型
new
Date().constructor === Date;
//true
[].constructor === Array;
//true
//可识别自定义类型
function
People(x, y) {
this
.x = x;
this
.y = y;
}
var
c =
new
People(2,3);
c.constructor===People;
//true
//函数封装如下
function
getConstructorName(obj){
return
obj && obj.constructor && obj.constructor.toString().match(/
function
\s*([^(]*)/)[1];
}
//利用&&短路特性
//1 obj//如果入参是undefined和null时能够直接返回,因为其没有constructor值
//2 obj.constructor//保证后面的表达式能够正确被执行
//3 obj.constructor.toString()//把构造函数转化为字符串"function Number(){}"
//4 .match(/function\s*([^(]*)/)[1]//获取构造函数字符串中有类型的值"Number"
getConstructorName(
new
Date());
//"Date"
getConstructorName(
null
);
//null
getConstructorName(12);
//"Number"
JS中有哪些识别类型的方法
标签:
原文地址:http://www.cnblogs.com/nullObj/p/4888587.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
36.VUE — 认识 Webpack 和 安装
2021-07-28
【PHP】上传图片翻转问题
2021-07-28
php对数字进行万。亿的转化
2021-07-28
五个 .NET 性能小贴士
2021-07-28
Three.js中显示坐标轴、平面、球体、四方体
2021-07-28
.net 5+ 知新:【1】 .Net 5 基本概念和开发环境搭建
2021-07-27
1.html,css
2021-07-27
基于Docker搭建 Php-fpm + Nginx 环境
2021-07-27
nginx + http + svn
2021-07-27
kubernets kube-proxy的代理 iptables和ipvs
2021-07-26
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!