javascript中如何判断类型汇总

 更新时间:2019年05月14日 09:55:47   作者:b0  
这篇文章主要给大家介绍了关于javascript中如何判断类型的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用javascript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

前言

我们在写封装的插件或者函数时,常常用到JS的数据类型判断,典型的案例就是深度拷贝函数用到数据类型判断,这个知识点在面试的时候也是经常考到的一个问题。本文就来给大家总结了下javascript中判断类型的相关资料,下面话不多说了,来一起看看详细的介绍吧

String

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

// Returns if a value is a string
function 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 number
function isNumber (value) {
 return typeof value === 'number' && isFinite(value);
}

Array

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

// Returns if a value is an array
function 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 function
function isFunction (value) {
 return typeof value === 'function';
}

Object

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

// Returns if a value is an object
function isObject (value) {
 return value && typeof value === 'object' && value.constructor === Object;
}

Null & undefined

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

// Returns if a value is null
function isNull (value) {
 return value === null;
}

// Returns if a value is undefined
function isUndefined (value) {
 return typeof value === 'undefined';
}

Boolean

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

// Returns if a value is a boolean
function isBoolean (value) {
 return typeof value === 'boolean';
}

RegExp

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

// Returns if a value is a regexp
function isRegExp (value) {
 return value && typeof value === 'object' && value.constructor === RegExp;
}

Error

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

// Returns if value is an error object
function isError (value) {
 return value instanceof Error && typeof value.message !== 'undefined';
}

Date

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

// Returns if value is a date object
function isDate (value) {
 return value instanceof Date;
}

Symbol

// Returns if a Symbol
function isSymbol (value) {
 return typeof value === 'symbol';
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

相关文章

  • setInterval 不准的原因及问题解决方案

    setInterval 不准的原因及问题解决方案

    setInterval 是 JavaScript 中用于定时执行任务的常用方法,本文主要介绍了setInterval 不准的原因及问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-02-02
  • JavaScript实现函数重载的代码示例

    JavaScript实现函数重载的代码示例

    在JavaScript中并没有直接支持函数重载的机制,但是可以通过一些技巧来模拟函数重载的效果,比如使用参数判断,使用默认参数,对象参数,这些方法都可以实现类似函数重载的效果,所以本文就给大家介绍一下JavaScript如何实现函数重载,需要的朋友可以参考下
    2023-08-08
  • JS新标签页打开的方法大全(让你的网站访问更加便捷)

    JS新标签页打开的方法大全(让你的网站访问更加便捷)

    在开发Web应用中我们常常需要在当前页面打开一个链接,但又不希望离开当前页面,这篇文章主要给大家介绍了关于JS新标签页打开的方法大全,通过这些方法可以让你的网站访问更加便捷,需要的朋友可以参考下
    2023-10-10
  • jquery SweetAlert插件实现响应式提示框

    jquery SweetAlert插件实现响应式提示框

    为了满足用户体验度,使用SweetAlert插件实现响应式提示框效果非常好,下面通过这篇文章给大家介绍jquery SweetAlert插件实现响应式提示框,需要的朋友可以参考下
    2015-08-08
  • Javascript的this用法

    Javascript的this用法

    本文主要介绍了Javascript的this用法,具有很好的参考价值,有需要了解的朋友可以看看
    2017-01-01
  • JavaScript中Promise的使用详解

    JavaScript中Promise的使用详解

    Promise,相信每一个前端工程师都或多或少地在项目中都是用过,毕竟它早已不是一个新名词。ES6中已经原生对它加以支持,在caniuse中搜索一下 Promise ,发现新版的chrome和firefox也已经支持。但是低版本的浏览器我们可以使用 es6-promise 这个 polyfill 库来加以兼容。
    2017-02-02
  • ES10 特性的完整指南小结

    ES10 特性的完整指南小结

    这篇文章主要介绍了ES10 特性的完整指南小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • Z-Blog中用到的js代码

    Z-Blog中用到的js代码

    Z-Blog中用到的js代码...
    2007-03-03
  • 小程序怎样让wx.navigateBack更好用的方法实现

    小程序怎样让wx.navigateBack更好用的方法实现

    这篇文章主要介绍了小程序怎样让wx.navigateBack更好用的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 动态加载iframe时get请求传递中文参数乱码解决方法

    动态加载iframe时get请求传递中文参数乱码解决方法

    这篇文章主要介绍了动态加载iframe时get请求传递中文参数乱码解决方法,需要的朋友可以参考下
    2014-05-05

最新评论