npm 包 what-type-is 使用教程

在前端开发中,经常需要判断一个变量的类型,以此来进行不同的操作。JS 中自带的 typeof 关键字只能判断大部分类型,但对于一些特殊的类型(如 null)则无能为力。这时候,我们可以借助一个 npm 包 —— what-type-is 来解决这个问题。

what-type-is 是什么

what-type-is 是一个轻量级的 JavaScript 包,提供了一系列的工具函数,用于判断 JavaScript 的变量类型。它支持的判断类型相比于常见的 typeof 更全面,能更准确地判断一个变量的类型。你可以在 GitHub 上找到它的源码

如何使用

首先,我们需要在项目中安装 what-type-is

--- ------- ------ ------------

安装好后,我们就可以在代码里引用它了。例如:

----- ---------- - ------------------------

----- --- - ------- --------
----------------------------- -- ---------

whatTypeIs 这个函数的使用非常简单,只需要传入一个变量,它就会返回这个变量的类型。它支持的类型有:

  • undefined: 未定义
  • null: 空值
  • boolean: 布尔值
  • number: 数字
  • string: 字符串
  • symbol: ES6 中新增的 Symbol 类型
  • date: 日期类型
  • array: 数组类型
  • regexp: 正则表达式类型
  • function: 函数类型
  • generatorfunction: 生成器函数类型
  • asyncfunction: 异步函数类型
  • promise: Promise 对象类型
  • map: ES6 中新增的 Map 类型
  • set: ES6 中新增的 Set 类型
  • weakmap: ES6 中新增的 WeakMap 类型
  • weakset: ES6 中新增的 WeakSet 类型
  • error: 错误类型
  • arguments: 函数参数类型

其中,除了 arrayarguments 这两个类型之外,其他类型的返回值都是小写字母字符串。

判断数组类型

由于 JavaScript 数组是通过对象来实现的,因此 typeof 无法准确地判断一个变量是否为数组。但是,我们可以使用 Array.isArray() 来判断一个变量是否为数组。what-type-is 也提供了 array 类型来判断是否为数组,只需要传入一个数组即可。

----- ---------- - ------------------------

----- --- - --- -- ---
----------------------------- -- --------

判断函数类型

对于函数类型,what-type-is 可以判断四种类型:

  • function: 普通函数
  • generatorfunction: 生成器函数
  • asyncfunction: 异步函数
  • promise: Promise 对象

具体使用方法可以参照下面的示例代码:

----- ---------- - ------------------------

-------- ----- --
----- -------- ----- --
--------- ----- --
----- --- - --- ----------------- -- -
  --------------- ---------
---

----------------------------- -- -----------
----------------------------- -- --------------------
----------------------------- -- ----------------
----------------------------- -- ----------

判断对象类型

当我们需要判断一个变量是否为对象时,通常会使用 typeof 关键字。但是,对于一些特殊的对象类型,如 nulltypeof 会返回 object,并不能准确地判断对象类型。 而 what-type-is 则提供了判断对象类型的方法 object,只需要传入一个对象即可。

----- ---------- - ------------------------

----- ---- - ---
----- ---- - -----
----- ---- - ---
------------------------------ -- ---------
------------------------------ -- ---------
------------------------------ -- --------

总结

what-type-is 提供了一种更准确的判断变量类型的方式,它是一个轻量级的 npm 包,在前端开发中具有一定的实用价值。本文介绍了 what-type-is 的使用方法,并提供了详细的示例代码,希望可以帮助到大家。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6005664181e8991b448e2517


猜你喜欢

  • npm 包 thingy52 使用教程

    介绍 Thingy52 是 Nordic Semiconductor 公司的一款低功耗无线传感器开发板,具备多种传感器模块和蓝牙通信模块。npm 包 thingy52 是一个 Node.js 库,可以...

    3 年前
  • npm 包 test-angular-infinite-list 使用教程

    前言 Angular 是目前广受欢迎的前端框架之一,它的组件化开发模式和模块化的设计给前端开发带来了很大的便利和提升。在 Angular 开发过程中,我们经常需要使用一些组件库或者依赖包来辅助我们完成...

    3 年前
  • npm 包 voicebase-v-2-beta-rest-api 使用教程

    在前端开发中,用到语音识别技术可以让我们的应用更加智能化和便捷化。而 voicebase-v-2-beta-rest-api 就是一个支持语音识别的 npm 包,本文将详细介绍该包的使用方法。

    3 年前
  • npm 包 blok 使用教程

    前言 在前端开发中,我们经常需要用到许多开源的第三方模块,在这些模块中,有一个叫做 blok 的 npm 包,可以帮助我们快速的开发可视化拖拽页面。在本篇文章中,我将详细介绍 blok 的使用方法,以...

    3 年前
  • NPM 包 easy-get 使用教程

    前言 在开发前端应用的过程中,我们经常会使用到很多开源的第三方库,这些库为我们的开发带来了巨大的便利。而使用 npm 作为包管理工具,则更进一步简化了我们的工作。 easy-get 是一款 npm 包...

    3 年前
  • npm 包 generator-wsu-fais-vs15 使用教程

    简介 generator-wsu-fais-vs15 是一个基于 Yeoman Generator 的前端脚手架,主要用于快速创建 Web 应用、组件库等项目并提供一系列约束、最佳实践及目录结构,适用...

    3 年前
  • npm 包 react-gravizo 使用教程

    介绍 react-gravizo 是一个能够将 Gravizo UML 渲染成 SVG 图片的 React 组件。 Gravizo 是一个基于文本描述生成 UML 图的工具,而 react-gravi...

    3 年前
  • npm 包 hearthstone-tool 使用教程

    前言 在前端开发中,我们经常需要使用到各种工具,而 npm(Node Package Manager)是前端开发中非常流行的包管理工具。在 npm 包库中,有许多非常有用的工具可以帮助我们提高开发效率...

    3 年前
  • npm 包 essence-ng2-print 使用教程

    如果你正在开发一个 Angular 应用程序,并需要在应用程序中实现打印功能,那么你可能需要使用到 npm 包 essence-ng2-print。这是一个非常好用的 npm 包,可以帮助你快速、高效...

    3 年前
  • npm 包 @yaga/geojson-redux 使用教程

    在前端开发过程中,我们经常需要处理地理数据,如何高效且方便地管理和操作这些地理数据呢?这时候,一个优秀的库会极大地提高你的工作效率和开发体验。@yaga/geojson-redux 就是一个优秀的 n...

    3 年前
  • npm 包 angular-library-seed-jason 使用教程

    介绍 angular-library-seed-jason 是一个 Angular 库的种子项目,它可以帮助开发者快速创建自己的 Angular 库,并且使用了最新的 Angular 版本和 Angu...

    3 年前
  • npm 包 hubot-even-better-help 使用教程

    简介 hubot-even-better-help 是一个提供命令行帮助的 Hubot 插件,它可以在帮助文档中添加段落、标签和模块的帮助内容,使得帮助文档更加详尽完整。

    3 年前
  • npm包osh-code-go的使用教程

    在前端开发中,我们会经常使用到多种npm包来辅助我们的工作。今天,我要介绍的是一款名为osh-code-go的npm包。 什么是osh-code-go osh-code-go是一个可以将Javascr...

    3 年前
  • npm 包 webpack-replace-chunkhash-contenthash 使用教程

    在前端开发中,使用 webpack 进行代码打包是一个非常好的选择。但是在实际开发过程中,经常会遇到需要替换 webpack 输出的打包文件中的 chunkhash 或 contenthash 的需求...

    3 年前
  • npm 包 yeps-body 使用教程

    在前端开发中,有时候我们需要向服务器发送 POST/PUT 请求,并且需要在请求体中传递一些数据。而 yeps-body 包就是用来解决这个问题的。本文将介绍 npm 包 yeps-body 的使用教...

    3 年前
  • npm 包 yeps-bodyparser 使用教程

    在前端开发中,我们经常需要对客户端请求中携带的数据进行处理。yeps-bodyparser 是一款 Node.js 的 npm 包,可以帮助我们方便地处理客户端请求中的数据。

    3 年前
  • npm 包 @ohze/pixi-multistyle-text 使用教程

    前言 如果你是一名前端开发者并且对游戏界面的开发感兴趣,那么你一定知道 Pixi.js 这个强大的 WebGL 游戏引擎。近期,我在开发游戏时遇到了一个问题:如何实现游戏中多种风格的文本显示。

    3 年前
  • npm 包 fis-parser-dart-sass 使用教程

    前言 前端开发中少不了对于 css 的处理,而 Sass 可以让我们在 css 的编写中有更高效、更简便的方式。在之前的使用中,我们可以使用离线 Sass compiler 完成 Sass 文件的编译...

    3 年前
  • npm包 homebridge-thermometer-am2320 使用教程

    前言 在前端开发中,我们经常需要通过不同的工具来实现不同的需求。这就需要我们掌握一些基础的技能,如如何使用 npm 包来解决问题。在本文中,我们将学习如何使用 npm 包 homebridge-the...

    3 年前
  • npm 包 osh-code-js 的使用教程

    随着前端技术的不断发展,越来越多的 npm 包被开发出来,成为前端开发必要的工具之一。osh-code-js 就是其中一个非常实用且方便的 npm 包。本文将介绍 osh-code-js 的使用教程,...

    3 年前

相关推荐

    暂无文章