当前位置: 首页 > news >正文

JS中判断数据类型总结以及方法封装

判断数据类型封装方法:

1)type返回字符串类型

2)is开头返回Boolean类型

测试实例:

JavaScript 判断数据类型的方式共有四种

  1. typeof
  2. instanceof
  3. constructor
  4. Object.prototype.toString

typeof

typeof 操作符返回一个字符串,表示操作值的类型

利用 typeof 判断数据类型的语法是 typeof target。 示例如下:

instanceof

instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个 实例对象 的原型链上

利用 instanceof 判断数据类型的语法是 target instanceof constructor。 示例如下:

用于判断操作值是否是指定构造函数的实例。

缺点:

  1. 不能判断基本数据类型,因为基本数据类型并不是构造函数的实例,没有原型链。
  2. 因为原型链的终点是 Object.protype => null,所以引用数据类型的原型链上都会存在 Object.protype,所以引用数据类型 instanceof Object 的时候都返回 true
  3. 原型链可以被修改,所以结果值不一定准确。

constructor

利用 constructor 判断数据类型的语法是 target.constructor === constructor。 示例如下:

用于判断操作值是否是指定构造函数的实例,可以判断 null 和 undefined除外的所有数据类型,之所以 null 和 undefined 不可以,是因为他们作为 JavaScript 运行环境创建时就存在的基本数据类型,不存在 constructor 属性

基本数据类型为什么会有 constructor 属性呢? 是因为基本数据类型获取 constructor 属性的时候,JavaScript 自动将基本数据类型的值转为包装对象实例,并在使用后立刻销毁实例。

缺点:constructor 属性可以被修改,所以结果值不一定准确。

Object.prototype.toString

返回对象的类型字符串.

利用 Object.prototype.toString 判断数据类型的语法是 Object.prototype.toString.call(target)。 示例如下:

可以准确判断所有数据类型。

总结

相关文章:

JS中判断数据类型总结以及方法封装

判断数据类型封装方法: 1)type返回字符串类型 2)is开头返回Boolean类型 测试实例: JavaScript 判断数据类型的方式共有四种 typeofinstanceofconstructorObject.prototype.toString typeof typeof 操作符返回一个字符串,表示操…...

【Midjourney】绘画风格关键词

1.松散素描(Loose Sketch) "Loose sketch"(松散素描)通常指的是一种艺术或设计中的手绘风格,其特点是线条和形状的表现相对宽松、自由,没有过多的细节和精确度。这样的素描通常用于表达创意、捕捉概念或者作为设计的初步…...

教你如何低成本自建「幻兽帕鲁」服务器,快速一键部署

创建幻兽帕鲁服务器1分钟部署教程,阿里云和腾讯云均推出幻兽帕鲁服务器服务器和部署教程,4核16G和4核32G配置可选,阿腾云atengyun.com分享1分钟自建幻兽帕鲁Palworld服务器教程: 幻兽帕鲁服务器创建教程 幻兽帕鲁服务器官方推荐…...

拥抱社交电商浪潮:微信小程序商城崛起引领电商新风向-亿发

在经过多年的发展后,各大传统电商平台的流量增速基本上已经见顶。同时,新兴的带有社交性质的电商平台,如抖音、小红书和微信商城(小程序商城)等,使得传统中心化平台的流量关注度逐渐分散。由于中心化平台需…...

一个使用pyqt的word文档查重工具

一个使用pyqt的word文档查重工具 使用场景代码使用截图打包好的软件下载链接结尾 使用场景 有时我们在借鉴一篇文档之后还不想有太多重复,这个时候可以使用这个工具对两个word文档进行对比 代码 import sys from PyQt5.QtWidgets import QApplication, QMainWind…...

SpringCloud Alibaba Sentinel 与 SpringCloud Gateway 的限流有什么差别?(三种限流算法原理分析)

目录 一、Sentinel 与 Gateway 的限流有什么差别? 1.1、前置知识 - 四种常见的限流算法 1.1.1、Tips 1.1.2、计数器算法 1)固定窗口计数器算法 2)滑动窗口计数器算法 1.1.3、令牌桶算法 1.1.4、漏桶算法 1.2、解决问题 一、Sentinel…...

邦芒忠告:职场新人最需要避开的十大雷坑

职场人最害怕的就是踩雷进坑,很多新入职场的小白都会战战兢兢,生怕哪里不对,冒犯了哪一位,或者触犯了哪一条潜规则。害怕自己踩到雷,没有走好职场第一步。最近,单位进了几个新人,看到他们就想起…...

MySQL-进阶-索引

一、索引概述 1、介绍 2、有误索引搜索效率演示 3、优缺点 二、索引结构 1、B-Tree(多路平衡查找树) 2、BTree 3、Hash 三、索引分类 四、索引语法 1、语法 2、案例 五、SQL性能分析 1、查看执行频次 2、慢查询日志 3、show-profile 4、explain...

GitLab入门指南:上传与下载操作一网打尽

GitLab简介: GitLab是一个基于Git的开源仓库管理系统,提供了一个Web界面的Git存储库管理器,并集成了多种开发工具的功能,如代码审查、问题跟踪、持续集成和持续部署等。GitLab可以在本地服务器上部署,也可以使用其提供…...

GPT应用_PrivateGPT

项目地址:https://github.com/imartinez/privateGPT 1 功能 1.1 整体功能,想解决什么问题 搭建完整的 RAG 系统,与 FastGPT 相比,界面比较简单。但是底层支持比较丰富,可用于知识库的完全本地部署,包含大…...

Qt‘s 撤销框架(Qt‘s Undo Framework)

一、开篇序言 我们常常有这样的业务场景,需要支持撤回的动作(即 undo)。如果让你来设计,聪明的你肯定也能立即想到解决问题的办法,对,将操作的 command { 对象,指令,属性 } 保存到一个容器中。 如果是仅需要单步撤销, 使用栈容器 保存command,动作执行即指令入栈, …...

【C++】stack、queue的使用及模拟实现

目录 一、stack1.1 stack的使用1.2 stack的模拟实现 二、queue2.1 queue的使用2.2 queue的模拟实现 一、stack 1.1 stack的使用 stack是一种容器适配器,它的特点是后进先出,只能在容器的一端进行插入和删除操作。 stack的使用很简单,主要有…...

外包干了2个多月,技术退步明显。。。。。

先说一下自己的情况,本科生,19年通过校招进入广州某软件公司,干了接近3年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...

html5实现好看的年会邀请函源码模板

文章目录 1.设计来源1.1 邀请函主界面1.2 诚挚邀请界面1.3 关于我们界面1.4 董事长致词界面1.5 公司合作方界面1.6 活动流程界面1.7 加盟支持界面1.8 加盟流程界面1.9 加盟申请界面1.10 活动信息界面 2.效果和源码2.1 动态效果2.2 源码目录结构 源码下载 作者:xcLei…...

【C++】反向迭代器模拟实现

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.利用适配器的思想…...

【低照度图像增强系列(5)】Zero-DCE算法详解与代码实现(CVPR 2020)

前言 ☀️ 在低照度场景下进行目标检测任务,常存在图像RGB特征信息少、提取特征困难、目标识别和定位精度低等问题,给检测带来一定的难度。 🌻使用图像增强模块对原始图像进行画质提升,恢复各类图像信息,再使用目标…...

三维重建衡量指标记录

1、完整性比率 Completeness Rati (CR) 完整性比率 完整性比率是用于评估三维重建质量的指标之一,它衡量了重建结果中包含的真实物体表面或点云的百分比。完整性比率通常是通过比较重建结果中的点云或三维模型与真实或标准点云或模型之间的重叠来计算的。 具体计算…...

在WinForms中控制模态对话框的关闭行为

博客文章:在WinForms中控制模态对话框的关闭行为 引言 在Windows Forms (WinForms) 应用程序中,对话框的行为控制是提升用户体验的关键部分。特别是在使用模态对话框时,防止用户不经意间关闭它变得尤为重要。本文将探讨如何通过重写 FormClo…...

java web mvc-02-struts2

拓展阅读 Spring Web MVC-00-重学 mvc mvc-01-Model-View-Controller 概览 web mvc-03-JFinal web mvc-04-Apache Wicket web mvc-05-JSF JavaServer Faces web mvc-06-play framework intro web mvc-07-Vaadin web mvc-08-Grails Struts2 Apache Struts是一个用于创…...

文件上传之大文件分块上传

分久必合,合久必分 优势部分:减少了内存占用,可实现断点续传,并发处理,利用带宽,提高效率 不足之处:增加复杂性,增加额外计算存储 应用场景:云存储大文件上传、多媒体平台…...

立知lychee-rerank-mm快速上手:无需代码,网页界面轻松实现文档相关性打分

立知lychee-rerank-mm快速上手:无需代码,网页界面轻松实现文档相关性打分 你是不是经常遇到这样的困扰?在搜索引擎里输入一个问题,结果返回的答案五花八门,真正有用的信息却藏在好几页之后。或者,你的智能…...

丹青识画系统助力PS软件插件开发:智能图像分析功能扩展

丹青识画系统助力PS软件插件开发:智能图像分析功能扩展 作为一名和设计工具打了十几年交道的“老炮儿”,我见过太多设计师朋友在创意构思和细节调整时陷入纠结。一张图,色彩搭配是否和谐?构图有没有更好的可能?很多时…...

告别单调按钮:用ImageButton和StateListDrawable打造高交互感的Android应用图标按钮

从静态到动态:用StateListDrawable构建专业级交互按钮系统 在移动应用界面设计中,按钮是最基础却最关键的交互元素之一。一个优秀的按钮设计不仅需要视觉上的吸引力,更需要通过细腻的状态反馈来建立用户与应用的对话机制。传统静态按钮早已无…...

OpenClaw时间管理:QwQ-32B驱动的智能日历优化

OpenClaw时间管理:QwQ-32B驱动的智能日历优化 1. 为什么需要AI助手管理日历? 去年我发现自己陷入了典型的"日历困境":每天要处理十几个会议邀约,手动协调时区差异,还要在碎片时间里塞进健身和学习计划。最…...

Qwen3-1.7B效果展示:看这个1.7B参数模型如何生成高质量中文内容

Qwen3-1.7B效果展示:看这个1.7B参数模型如何生成高质量中文内容 1. 开篇惊艳:小模型的大能量 在AI大模型领域,参数规模往往与性能表现直接挂钩。但Qwen3-1.7B的出现打破了这一常规认知——这个仅有1.7B参数的轻量级模型,在中文内…...

3步掌握BilibiliDown:B站视频下载全攻略与效率提升指南

3步掌握BilibiliDown:B站视频下载全攻略与效率提升指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/…...

SUPER COLORIZER 构建智能Agent:自动识别图像内容并匹配历史色彩方案

SUPER COLORIZER 构建智能Agent:自动识别图像内容并匹配历史色彩方案 你有没有想过,给一张黑白老照片上色,如果能像专业设计师一样,看一眼就知道该用什么色调?比如一张森林的照片,系统能自动联想到“秋日暖…...

CSS图片轮播进阶:5种实现无限循环滚动的实战技巧(附完整代码)

CSS图片轮播进阶:5种实现无限循环滚动的实战技巧(附完整代码) 在电商网站的首页或个人作品集的展示页面中,图片轮播(Carousel)始终是吸引用户注意力的利器。而无限循环滚动效果,则能让有限的展示…...

CLAP Zero-Shot Audio Classification Dashboard部署教程:HTTPS反向代理配置(Nginx)保障生产环境访问安全

CLAP Zero-Shot Audio Classification Dashboard部署教程:HTTPS反向代理配置(Nginx)保障生产环境访问安全 1. 为什么需要HTTPS反向代理 当你成功部署了CLAP音频分类应用后,可能会发现直接通过HTTP访问存在一些安全问题。在生产环…...

如何通过Superalgos教育模块快速掌握算法交易:新手入门完整指南

如何通过Superalgos教育模块快速掌握算法交易:新手入门完整指南 【免费下载链接】Superalgos Superalgos/Superalgos: 是一个开源的分布式社交网络分析和数据挖掘平台。适合对大数据分析、机器学习、区块链以及分布式系统有兴趣的开发者。 项目地址: https://gitc…...