首页 > 其他分享 >检测数据类型的几种方法

检测数据类型的几种方法

时间:2024-07-16 10:29:41浏览次数:11  
标签:输出 Object console log 检测 object 数据类型 几种 let

1. 使用 typeof 操作符

typeof 操作符可以用来判断一个变量的基本类型

let a = 42;
console.log(typeof a);  // 输出 "number"

a = "Hello";
console.log(typeof a);  // 输出 "string"

a = true;
console.log(typeof a);  // 输出 "boolean"

a = {};
console.log(typeof a);  // 输出 "object"

a = [];
console.log(typeof a);  // 输出 "object"(数组被认为是对象)

a = null;
console.log(typeof a);  // 输出 "object"(特例,null 被认为是空对象引用)

a = undefined;
console.log(typeof a);  // 输出 "undefined"

a = function() {};
console.log(typeof a);  // 输出 "function"

2. 使用 Array.isArray() 判断数组

Array.isArray() 是用来判断一个变量是否为数组的方法。

let arr = [1, 2, 3];
console.log(Array.isArray(arr));  // 输出 true

let notArr = {};
console.log(Array.isArray(notArr));  // 输出 false

3. 使用 instanceof 操作符

instanceof 操作符用来检测构造函数的原型链中是否存在某个对象的原型。

let date = new Date();
console.log(date instanceof Date);  // 输出 true

let obj = {};
console.log(obj instanceof Object);  // 输出 true

let arr = [];
console.log(arr instanceof Array);  // 输出 true

let num = 42;
console.log(num instanceof Number);  // 输出 false(因为 42 是原始类型,不是 Number 对象)

4. 使用 Object.prototype.toString.call() 方法

这是一种比较通用和精确的方法,可以判断 JavaScript 中几乎所有类型的变量。

let obj = {};
console.log(Object.prototype.toString.call(obj));  // 输出 "[object Object]"

let arr = [];
console.log(Object.prototype.toString.call(arr));  // 输出 "[object Array]"

let num = 42;
console.log(Object.prototype.toString.call(num));  // 输出 "[object Number]"

let str = "Hello";
console.log(Object.prototype.toString.call(str));  // 输出 "[object String]"

let bool = true;
console.log(Object.prototype.toString.call(bool));  // 输出 "[object Boolean]"

let date = new Date();
console.log(Object.prototype.toString.call(date));  // 输出 "[object Date]"

let func = function() {};
console.log(Object.prototype.toString.call(func));  // 输出 "[object Function]"

let regex = /abc/;
console.log(Object.prototype.toString.call(regex));  // 输出 "[object RegExp]"

let error = new Error();
console.log(Object.prototype.toString.call(error));  // 输出 "[object Error]"

let nullValue = null;
console.log(Object.prototype.toString.call(nullValue));  // 输出 "[object Null]"

let undefinedValue = undefined;
console.log(Object.prototype.toString.call(undefinedValue));  // 输出 "[object Undefined]"

5. 使用 typeof 与 null 的特殊判断

需要注意的是,typeof null 返回 "object",因为在 JavaScript 中将 null 错误地归类为对象。因此,如果要判断一个变量是否为 null,可以使用 === null 来做精确判断。

let nullValue = null;
console.log(typeof nullValue);  // 输出 "object"
console.log(nullValue === null);  // 输出 true

标签:输出,Object,console,log,检测,object,数据类型,几种,let
From: https://blog.csdn.net/abc123abccc/article/details/140455991

相关文章

  • 基于web的宠物商城设计与实现 毕业论文终稿+初稿+修改版论文+开题报告+答辩PPT+论文检
    !!!有需要的小伙伴可以通过文章末尾名片咨询我哦!!! ......
  • 助力智慧交通,基于YOLO家族最新端到端实时目标检测算法YOLOv10全系列【n/s/m/b/l/x】参
    交通标志检测是交通标志识别系统中的一项重要任务。与其他国家的交通标志相比,中国的交通标志有其独特的特点。卷积神经网络(CNN)在计算机视觉任务中取得了突破性进展,在交通标志分类方面取得了巨大的成功。CCTSDB数据集是由长沙理工大学的相关学者及团队制作而成的,其有交通标志样......
  • 使用预训练模型(yolov8、MobileNetV2、ResNet50)与Gradio构建图像目标检测Web应用
    简介:  利用gradio设计一个web运用,实现图片主体物的识别。  1)用户可以通过网页提交一张图片。  2)web应用将输出这张图片中主体物的名称(中英文都可以)。  3)可以使用预训练的模型。利用预训练实现对物体识别准备工作在开始之前,请确保你的环境中已安装了以下依赖......
  • Java 中有哪几种基本数据类型?请分别列出它们并简述每种数据类型的特点及其在内存中的
    在Java的世界里,数据是构建应用程序的基石。为了高效地处理这些数据,Java设计了一系列基础数据类型,它们直接映射到计算机硬件上,因此在性能和内存使用上更为高效。我们常说的Java八大基本数据类型,涵盖了整数、浮点数、字符和布尔值,下面我将一一介绍它们的特点以及在内存中的占用......
  • Turtlebot3在ROS Gazebo中使用OpenCV检测并跟踪球体
    原文链接:https://www.youtube.com/watch?v=Rw6ATkORRG8   一个小巧的机器人在虚拟世界中敏捷地追踪着一个滚动的球体。Turtlebot3,一个搭载ROS操作系统的智能机器人,在Gazebo仿真环境中,利用OpenCV的神奇力量,展现出令人惊叹的视觉追踪能力。 Turtlebot3的"眼睛"是一台高清......
  • 心跳检测的艺术:Eureka服务发现中的智能配置
    心跳检测的艺术:Eureka服务发现中的智能配置在微服务架构中,服务发现是确保服务之间可以相互通信的关键机制。Eureka作为Netflix开源的服务发现框架,提供了一种简单而高效的服务注册与发现机制。然而,为了维持服务的可用性和稳定性,服务之间的心跳检测变得至关重要。本文将深入......
  • 【数据集】Maple-IDS——网络安全恶意流量检测数据集
    一、数据集介绍Maple-IDS数据集是一个网络入侵检测评估数据集,旨在增强异常基础入侵检测系统(IDS)和入侵预防系统(IPS)的性能和可靠性。随着网络空间安全领域攻击的日益复杂化,拥有一个可靠和最新的数据集对于测试和验证IDS和IPS解决方案至关重要。数据集由东北林业大学网络安全实验室......
  • 记录解决QT父子窗口互传值、一些数据类型转换问题
    @目录一、父子窗口互相传值①父向子窗口传递值②子向父窗口传递值二、数据类型转换①int转QString②int转16进制③QString转unsignedchar④unchar转QString⑤char转int⑥QByteArray转16进制一、父子窗口互相传值①父向子窗口传递值父.hprivateslots:voidon_btnMore_c......
  • C#、PLC中数据类型学习及汇总
    前言 注:不同语言部分类型定义和取值范围有所不同。编程语言如C#、C++等数据类型丰富多样,而PLC中的数据类型一般比较简单,这里汇总一下常用的数据类型,以便以后查阅。自己一个个手敲学习总结,如果有错望留言指正,如觉得还有用,请点赞收藏。目录前言1、C#中常用的值类型:可以直接......
  • pytorch下yolov8模型实现目标检测(全网最简洁快速,一眼懂)
    最近研究了一个目标检测项目,需要对水稻进行检测,yolov8的模型官网都封装好了,官网地址:Home-UltralyticsYOLODocs,本文给急需目标检测的同学参考,非常急的那种,废话少说,下面是所有代码:importosimporttorchfromultralyticsimportYOLOos.environ['KMP_DUPLICATE_LIB_OK']......