如何判断JavaScript数据具体类型
昨晚做了阿里的题目,让我写一个函数,可以判断数据的具体类型。其实题目很简单的。。。但是真的是自己不太注意吧,写的很糟糕啊。
然后今天就自己写了一个,然后又到晚上搜了下,看看别人的写法,结果发现自己有点思维受限啊,不够开阔啊,那些方法其实都是见过的,可能是自己没有梳理过,或者认真对待。今天就把这些方法整理一下。
1、基本数据类型采用typeof,这个返回的都是很准的。
var a = "iamstring.";
var b = 222;
var c= [1,2,3];
var e = function(){alert(111);};
var f = function(){this.name="22";}; alert(typeof a) ------------> string
alert(typeof b) ------------> number
alert(typeof c) ------------> object//数组是引用类型的
alert(typeof f) ------------> function
alert(typeof e) ------------> function
2、引用类型采用instanceof, 主要针对的是采用new 实例化的对象。
var a = new String("iamstring.");
var b = new Number(222);
var c = new Array(222,2,4);
var e = function(){console.log(111);};
var f = function(){this.name="22";};
var f = function(){this.name="22";};
var h = new Error("foo");
console.log(a instanceof String) //true
console.log(b instanceof Number) //true
console.log(c instanceof Array) //true
console.log(e instanceof Function) //true
console.log(f instanceof Function) //true
console.log(h instanceof Error) //true
3、根据constructor来判断
其中a-h跟上面的一样,就不重复定义了,注意不带引号的,是要大写
var i="str", arr=[1], num=1;
console.log(a.constructor=== String) //true
console.log(b.constructor=== Number) //true
console.log(c.constructor=== Array) //true
console.log(e.constructor=== Function) //true
console.log(f.constructor=== Function) //true
console.log(h.constructor===Error) //true
console.log(i.constructor===String) //true
console.log(num.constructor=== Number) //true
console.log(arr.constructor=== Array) //true
4、toString()方法,这是最通用的,大小写不能写错,有点麻烦
console.log(Object.prototype.toString.call(a) === ‘[object String]’) -------> true; console.log(Object.prototype.toString.call(b) === ‘[object Number]’) -------> true; console.log(Object.prototype.toString.call(c) === ‘[object Array]’) -------> true; console.log(Object.prototype.toString.call(d) === ‘[object Date]’) -------> true; console.log(Object.prototype.toString.call(e) === ‘[object Function]’) -------> true; console.log(Object.prototype.toString.call(f) === ‘[object Function]’) -------> true;
5、可以采用一些某些数据类型采用的方法
比如:string 类型的 replace
regexp类型的test, exec
数组还有一种判断方法:Array.isArray()
date 类型的 getMonth()等
如何判断JavaScript数据具体类型的更多相关文章
- Token验证的流程及如何准确的判断一个数据的类型
Token验证的流程: 1,客户端使用用户名跟密码请求登录:2,服务端收到请求,去验证用户名与密码:3,验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端:4,客户端收到 T ...
- javascript数据变量类型判断(JS变量是否是数组,是否是函数的判断)
function isArray(o) { return Object.prototype.toString.apply(o) === “[object Array]”;}function isFun ...
- js获取或判断任意数据类类型的通用方法(getDataType)和将NodeList转为数组(NodeListToArray)
function getDataType(any){ /* (1) Object.prototype.toString.call 方法判断类型: 优点:通用,返回"[object Strin ...
- 判断javaScript变量是Ojbect类型还是Array类型
JavaScript是弱类型的语言,所以对变量的类型并没有强制控制类型.所以声明的变量可能会成为其他类型的变量, 所以在使用中经常会去判断变量的实际类型. 对于一般的变量我们会使用typeof来判 ...
- [Javascript]js判断是否为undefined类型
概述 在项目获取某个元素的值会出现undefined,所以对这种情况要有特殊处理. 可通过下面的代码判断是否为undefined类型. if (typeof(reValue) == "und ...
- Javascript学习1 - Javascript中的类型对象
原文:Javascript学习1 - Javascript中的类型对象 1.1关于Numbers对象. 常用的方法:number.toString() 不用具体介绍,把数字转换为字符串,相应的还有一个 ...
- javascript 中的类型
javascript 中的类型 js 是一门弱语言,各式各样的错误多种多样,特别是确定返回值有问题的时候,你会用什么来进行表示错误? 我一般有三个选择: null '' error {} 第一个选择 ...
- javascript学习-基本类型
javascript学习-基本类型 1.概述 javascript的数据类型大体上分两种:基本类型和对象类型.简单的区分就是基本类型是无法再分的原子级类型:对象类型是容器,可以容纳基本类型和对象类型. ...
- JavaScript数据检测
前言: 随着编程实践的增加,慢慢发现关于数据类型的检测至关重要.我认为程序就是为了处理数据和展示数据.所以,数据的检测对于编程来说也至关重要.因为只有符合我们预期的输入,才可能产生正确的输出.众所周知 ...
随机推荐
- imooc movie
node+mongodb 建站攻略(一期) 用的都是我熟悉的技术,看了别人的开发过程,自己也学到了一些新的知识 生成配置文件 开发结束后,可以使用bower init来生成前端的配置文件. 不过在bo ...
- js五道经典练习题--第二道仿qq聊天框
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- CSS 基础 例子 图片拼合技术
利用background-position xpos ypos 就是以图片的左上角顶点为原点,往下和右都为正,反之为负,移动图片 如: background-position: 15px 20px;( ...
- PhantomJS快速入门-无界面浏览器
https://blog.csdn.net/libsyc/article/details/78199850 PhantomJS快速入门 本文简要介绍了PhantomJS的相关基础知识点,主要包括Pha ...
- 合成的默认构造函数定义为delete的一种情况(针对C++11标准)
1. 默认初始化 如果定义变量时没有指定初值,则变量会被默认初始化,此时变量被赋予了"默认值". 对于类类型的变量来说,初始化都是依靠构造函数来完成的.因此,即使定义某个类的变量( ...
- Mac系统登录不进系统解决办法
1.找到买苹果电脑时附带的 Mac OS X 系统光盘,或者有苹果 Mac OS X 系统镜像的 U 盘/移动硬盘,塞入光驱(或插在 USB /火线接口上).重启苹果电脑,开机时按住“option”键 ...
- SQL SERVER 索引视图
创建: CREATE VIEW [dbo].[view_xxx] WITH SCHEMABINDING AS SELECT Table1.主键, Table1.外键 FROM Table1, Tabl ...
- OpencvSharp 在WPF的Image控件中显示图像
1.安装OpencvSharp 我使用的是VS2013 社区版,安装OpencvSharp3.0 在线安装方法:进入Tools,打开NuGet的包管理器 搜索Opencv 安装之后就可以使用,无需再做 ...
- 一、winForm-DataGridView操作——控件绑定事件的两种方法
在winForm窗体中绑定(注册)事件的方法有两种: 一.绑定事件 双击控件,即进入.cs的代码编辑页面,会出现 类似于“ private void 控件名称_Click(object sender, ...
- WPF Bitmap转成Imagesource的性能优化
之前有个需求是在WPF中生成二维码,用的是QRCoder. QRCoder生成的是Bitmap,在wpf中需要转换成ImageSource才能显示. 之前的转换方式是: IntPtr hBitmap ...