博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在javascript中判断类型
阅读量:6501 次
发布时间:2019-06-24

本文共 2491 字,大约阅读时间需要 8 分钟。

String

一个字符串始终是一个字符串,所以这一块是很容易。除非使用new(new String)调用,否则typeof将返回“object”。所以也要包含那些可以使用的字符串instanceof。

// Returns if a value is a stringfunction isString (value) {    return typeof value === 'string' || value instanceof String;}复制代码

Number

From typeof more things than just an ordinary number will return "number" like NaN and Infinity. To know if a value really is a number the function isFinite is also required. 从类型更多的东西,而不仅仅是普通的数字将返回像NaN和无限的“数字”。要知道值是否真的是数字,函数isFinite也是必需的。

// Returns if a value is really a numberfunction isNumber (value) {    return typeof value === 'number' && isFinite(value);}复制代码

Array

在javascript 数组中不是像java和其他语言中那样的真正数组。它们实际上是对象,因此typeof将为它们返回“对象”。要知道某些东西是否真的是一个数组,它的构造函数可以与Array进行比较。

// Returns if a value is an arrayfunction isArray (value) {    return value && typeof value === 'object' && value.constructor === Array;}// ES5 actually has a method for this (ie9+)Array.isArray(value);复制代码

Function

// Returns if a value is a functionfunction isFunction (value) {    return typeof value === 'function';}复制代码

Object

很多东西都是javascript中的对象。要知道值是否是可以具有属性并循环的对象,可以将其构造函数与Object进行比较。它不适用于从类创建的对象,因此可以使用instanceof运算符。

// Returns if a value is an objectfunction isObject (value) {    return value && typeof value === 'object' && value.constructor === Object;}复制代码

Null & undefined

大多数情况下,您不需要显式检查null和undefined,因为它们都是假值。然而,要做到这一点,下面的功能就可以了。

// Returns if a value is nullfunction isNull (value) {    return value === null;}// Returns if a value is undefinedfunction isUndefined (value) {    return typeof value === 'undefined';}复制代码

Boolean

对于布尔值, typeof就足够了,因为它返回true和false的“boolean”。

// Returns if a value is a booleanfunction isBoolean (value) {    return typeof value === 'boolean';}复制代码

RegExp

RegExp是对象,因此唯一需要检查的是构造函数是否为RegExp。

// Returns if a value is a regexpfunction isRegExp (value) {    return value && typeof value === 'object' && value.constructor === RegExp;}复制代码

Error

javascript中的错误与许多其他编程语言中的“异常”相同。它们有几种不同的形式,例如Error,TypeError和RangeError。一个instanceof语句对他们来说已经足够了,但我们还要确保我们还检查错误所具有的“message”属性。

// Returns if value is an error objectfunction isError (value) {    return value instanceof Error && typeof value.message !== 'undefined';}复制代码

Date

日期实际上不是javascript中的数据类型。但要知道是否有某个Date对象,可以使用instanceof进行检查。

// Returns if value is a date objectfunction isDate (value) {    return value instanceof Date;}复制代码

Symbol

// Returns if a Symbolfunction isSymbol (value) {    return typeof value === 'symbol';}复制代码

转载于:https://juejin.im/post/5cd924bce51d453afd3be789

你可能感兴趣的文章
Android学习路线
查看>>
Linux下的redis的持久化,主从同步及哨兵
查看>>
在相同的主机上创建一个duplicate数据库
查看>>
Date15
查看>>
从Date类型转为中文字符串
查看>>
el-popover可以设高度_农村建房资金充裕,不妨建个地下室,车库、酒窖、卡拉OK都可以...
查看>>
基于multisim的fm调制解调_苹果开始自研蜂窝网调制解调器 最快2024年能用上?
查看>>
mupdf不支持x64_Window权限维持(七):安全支持提供者
查看>>
cf修改游戏客户端是什么意思_瓦罗兰特很有可能取代cf成为国内最火的fps游戏...
查看>>
proto文件支持继承吗_JavaScript继承(一)——原型链
查看>>
labview如何弹出提示窗口_LabVIEW开发者必读的问答汇总,搞定疑难杂症全靠它了!...
查看>>
提取series中的数值_Python中None和numpy.nan的区别
查看>>
hikariconfig mysql_HikariConfig配置解析
查看>>
mysql批量数据多次查询数据库_mysql数据库批量操作
查看>>
jquery 乱码 传参_jquery获取URL中参数解决中文乱码问题的两种方法
查看>>
JDBC_MySQL_jdbc连接mysql_MySQL
查看>>
新手学习python零基础_新手零基础学习Python第一步,搭建开发环境!
查看>>
mysql cte的好处_Mysql 8 重要新特性 - CTE 通用表表达式
查看>>
zcu106 固化_xilinx zcu106 vcu demo
查看>>
java 打印万年历_Java基础之打印万年历
查看>>