JS判断类型的方法和对应的局限性

news2024/11/17 3:38:31

JS判断类型的方法和对应的局限性

一、typeof

返回:

该方法返回小写字符串表示检测数据属于什么类型,例如:
检测函数返回function
检测函数返回function

可判断的数据类型:

undefined、string、number、function、boolean、object,symbol,其中Array、null会被识别成object,NaN会被识别成number

不能正确识别Array、null

原因:识别成object的原因是他们前三位二进制是0就会被识别成Object,而null全是0,而不能识别Array的原因是JS本来就只有8中数据类型,null、number、undefined、boolean、string、symbol、bigint、object。

二、instanceof

返回:

该方法返回true或false,用于检测一个对象是否是另一个对象的实例,仅能用于判断对象类型,不能用于判断基本数据类型,如:
在这里插入图片描述
但是null instanceof Object => false

三、Object.prototype.toString.call()

返回:

该方法返回一串字符串,[object 待测对象名],如:
它能正确识别Array,null等等上面方法没法正确识别的类型,不便之处是太长了太难写了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/804450.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

百题千解计划【CSDN每日一练】Ctrl+X,Ctrl+V(附解析+多种实现方法:Python、Java、C、C++、go、C#、JavaScript)

你要变成什么样子,全看你自己的选择。 🎯作者主页: 追光者♂🔥 🌸个人简介: 💖[1] 计算机专业硕士研究生💖 🌟[2] 2022年度博客之星人工智能领域TOP4🌟 🏅[3] 阿里云社区特邀专家博主🏅 🏆[4] CSDN-人工智能领域优质创作者🏆 📝…

SAP财务系统中的“增值税”

1. 前言 在前一篇博客《SAP财务系统中的“复式记账法”》中,介绍了复式记账的基本原理,同时给出了在采购和销售流程中常见的记账科目,但也遗留了一些知识点,例如增值税等概念。 在本篇博客中,我们将覆盖这些知识点&a…

linux 指令 第3期

cat cat 指令: 首先我们知道一个文件内容属性 我们对文件操作就有两个方面:对文件内容和属性的操作 扩展:echo 指令 直接打印echo后面跟的字符串 看: 这其实是把它打印到了显示器上,我们也可以改变一下它的打印位置…

SpringCloud学习—Ribbon:负责均衡及Ribbon

ribbno是什么? Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。 简单的说,Ribbon是Netflix发布的开源项目, 主要功能是提供客户端的软件负载均衡算法,将NetFlix的中间层服务连接在一起。 Ribbon的客户端组件提供一系列…

【UE4】局域网多人联机 Demo

效果 亲测可以打包后在两个电脑上联机运行(前提是在同一个局域网内,互相能ping通) 步骤 1. 首先新建一个第三人称角色模板工程 2. 在多玩家选项中,设置玩家数量为2 选择在新建编辑器窗口中运行 3. 新建一个父类为Character的蓝…

基于linux下的高并发服务器开发(第三章)- 3.12 生产者和消费者模型

/*生产者消费者模型&#xff08;粗略的版本&#xff09; */ #include <stdio.h> #include <pthread.h> #include <stdlib.h> #include <unistd.h>// 创建一个互斥量 pthread_mutex_t mutex;struct Node{int num;struct Node *next; };// 头结点 struct…

微信小程序授权登录时先判断是否勾选协议再弹出获取手机号的弹窗

思路&#xff1a;设置两个一样的按钮&#xff0c;一个用来判断是否已勾选&#xff1b;另一个是授权登录的按钮&#xff0c;用来获取用户信息 <button class"btn1" wx:if"{{ checked1}}" open-type"getPhoneNumber" bindgetphonenumber"g…

【每日一题】2050. 并行课程 III

【每日一题】2050. 并行课程 III 2050. 并行课程 III题目描述解题思路 2050. 并行课程 III 题目描述 给你一个整数 n &#xff0c;表示有 n 节课&#xff0c;课程编号从 1 到 n 。同时给你一个二维整数数组 relations &#xff0c;其中 relations[j] [prevCoursej, nextCour…

Jetson全系列平台升级命令合集

进入刷机模式: NVIDIA Jetson是通过Micro-USB/USB TYPE-C接口升级系统(具体参考不同载板说明),更新前需让Jetson进入Recovery 模式。Recovery 模式下可以进行文件系统更新包含: 内核Kernel,启动Bootloader,文件系统Filesystem等。 进入 Recovery 模式的步骤: 1)关闭系…

WEB APIs day4 (2)

三、M端事件 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, …

数据安全:DataSecurity Plus

随着数字化时代的来临&#xff0c;数据成为了企业和个人生活中不可或缺的一部分。然而&#xff0c;数据的增长和广泛应用也带来了许多安全挑战。数据泄露、黑客攻击和恶意软件成为了威胁数据安全的主要因素。在这个充满风险的环境中&#xff0c;DataSecurity Plus作为一种强大的…

计算机二级Python基本操作题-序号42

1. 根据斐波那契数列的定义&#xff0c;F(0)0&#xff0c;F(1)1&#xff0c;F(n)F(n-1)F(n-2)(n>2)&#xff0c;输出不大于50的序列元素。 例如&#xff1a;屏幕输出示例为&#xff1a; 0&#xff0c;1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;…&#xff08;略…

docker部署vue项目

材料&#xff1a; 1.打包好的vue的dist文件夹 2.docker环境 运行环境结构图&#xff1a; dist&#xff1a;打包的项目 default.conf: nginx的配置文件 gzip on; #开启或关闭gzip on off gzip_disable "msie6"; gzip_buffers 4 16k; gzip_comp_level 8; gzip_typ…

Nuclei漏洞扫描工具

Nuclei漏洞扫描工具&#xff1a; Nuclei 是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发&#xff0c;具有很强的可配置性、可扩展性和易用性。 提供 TCP、DNS、HTTP、FILE 等各类协议的扫描&#xff0c;通过强大且灵活的模板&#xff0c;可以使用 Nucl…

电商运营的方法

1、以后干,不如现在干 1.1 做代理,搞研发 1.2 自建店铺,去看其他店铺的设计样板 1.3 记住网店挣钱三要点:装修,物流,产品资源 1.4 记住你的职责,让别人明白怎么做,仔细看资料,搞清楚细节 2、如何打开机器人 3.设置自动回复 Ctrl + tab 4.如何做基础销量,做一个刷…

查看8080端口会不会被占用

相关命令 查看8080端口会不会被占用 netstat -ano | findstr 8080 查看 终止占用端口xxx的进程 taskkill /f /pid xxx 具体步骤 第一步&#xff1a;点击起始菜单&#xff08;或是通过winR快捷键&#xff09;&#xff0c;在输入框中输入cmd&#xff0c;点击确定&#x…

十七章:FickleNet:使用随机推理进行弱监督和半监督语义图像分割

0.摘要 弱监督语义图像分割的主要障碍在于从粗糙的图像级注释中获取像素级信息的难度。大多数基于图像级注释的方法使用从分类器获得的定位地图&#xff0c;但这些地图仅关注对象的小区别部分&#xff0c;不捕捉精确的边界。FickleNet探索由通用深度神经网络创建的特征图上的各…

环境搭建-Ubuntu20.04.6系统TensorFlow BenchMark的GPU测试

1. 下载Ubuntu20.04.6镜像 登录阿里云官方镜像站&#xff1a;阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 2. 测试环境 Server OS&#xff1a;Ubuntu 20.04.6 LTS Kernel: Linux 5.4.0-155-generic x86-64 Docker Version&#xff1a;24.0.5, build ced0996 docker-com…

MSP432自主开发笔记5:IIC通信移植与驱动AT24Cxx存储芯片

今日学习移植MSP432的IIC总线协议&#xff0c;并用此驱动AT24C02芯片实现写入以及读取的功能&#xff0c;然后实现打印开机复位次数的效果。 文章贴出测试工程&#xff0c;测试截图&#xff0c;测试代码~ 其实是实在看不懂MSP432有关于FLASH存储操作相关的英文手册与例程&…

怎么学习Java并发编程相关技术? - 易智编译EaseEditing

学习Java并发编程可以通过多种方式进行&#xff0c;包括但不限于以下几种&#xff1a; 在线教程和学习平台&#xff1a; 网上有许多免费和付费的Java并发编程教程和学习平台&#xff0c;如Coursera、Udemy、edX、Codecademy等。这些平台提供结构化的课程和练习&#xff0c;适…