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

js判断数据类型的方法

简单数据类型用:typeof,

// 可以直接typeof空格接数据的方式,也可以typeof(数据)的方式使用
console.log(typeof "");            //string(检验字符串没问题)
console.log(typeof 1);             //number(检验数字没问题)
console.log(typeof true);          //boolean(检验布尔值没问题)
console.log(typeof undefined);     //undefined(检验undefined没问题)
console.log(typeof []);            //object(检验数组待定)
console.log(typeof {});            //object(检验数字没待定)
console.log(typeof null);          //object!!!(检验null没待定)
console.log(typeof function(){});  //function(检验函数没问题)
console.log(typeof Symbol());      //symbol(es6)(检验Symbol没问题)
console.log(typeof 666n);        //bigint(es11)(检验bigint没问题)
// 由此可见typeof检验结果在为对象,数组,null 时都是结果都是object,所以不一定完全准确

引用数据类型用:instanceof(可以跟typeof结合起来用就能判断所有的数据类型了)

// 写法:数据空格instanceof数值类型(大写开头)
console.log(9 instanceof Number);                    // false(判断基本数据类型无效)
console.log(true instanceof Boolean);                // false(判断基本数据类型无效)
console.log('libo' instanceof String);               // false(判断基本数据类型无效)
console.log([] instanceof Array);                    // true(数组不再是对象类型而是具体到数组类型)
console.log({} instanceof Object);                   // true(依旧是对象没问题)
console.log(null instanceof Object);                 //false (null也不再是对象)
console.log(function(){} instanceof Function);       // true(函数也没问题)
// 由此可见instanceof可以用来区别数组,对象,以及null三个类型

一步到位用:Object.prototype.toString.call()

// 最强绝招Object.prototype.toString.call()
// 这个方法几乎检验所有的数据类型,返回的结果是一个中括号型字符串,字符串后面部分即为数据类型
console.log(Object.prototype.toString.call(''))              // [object String]
console.log(Object.prototype.toString.call(1))               // [object Number]
console.log(Object.prototype.toString.call(true))            // [object Boolean]
console.log(Object.prototype.toString.call(Symbol()))         // [object Symbol]
console.log(Object.prototype.toString.call(666n))         		// [object BigInt]
console.log(Object.prototype.toString.call(undefined))       // [object Undefined]
console.log(Object.prototype.toString.call(null))            // [object Null]
console.log(Object.prototype.toString.call(NaN))            	// [object Number](NaN是个例外结果是个Number)
console.log(Object.prototype.toString.call(function(){}))  	// [object Function]
console.log(Object.prototype.toString.call(new Date()))      // [object Date]
console.log(Object.prototype.toString.call([]) )              // [object Array]
console.log(Object.prototype.toString.call(new RegExp()))    // [object RegExp]
console.log(Object.prototype.toString.call(new Error()))    	// [object Error]
console.log(Object.prototype.toString.call(document))        // [object HTMLDocument](甚至能识别是否为dom元素)
console.log(Object.prototype.toString.call(window))          // [object window] 

相关文章:

js判断数据类型的方法

简单数据类型用:typeof, // 可以直接typeof空格接数据的方式,也可以typeof(数据)的方式使用 console.log(typeof ""); //string(检验字符串没问题) console.log(typeof 1); //number(检验数字没问题) console.log(typ…...

达梦数据库随系统开机自动启动脚本

写一个脚本,实现在服务器开机后自动启动达梦数据库的功能。 1. 在/etc/init.d/目录下,编写脚本,并将脚本命名为startdm.sh。脚本内容实现如下: #!/bin/bash #chkconfig:2345 80 90 #decription:启动达梦# 切换到 dmdba 用户 su …...

Python开发利器之VS Code

Python官方提供了一个Python集成开发环境(IDE): IDLE (Integrated Development and Learning Environment)。 它提供了一个图形用户界面,可以让开发者编写、调试和执行Python程序。IDLE包含Python解释器、代码编辑器、调试器和文件…...

【Axure视频教程】输入框控制滑动评分条

今天教大家在Axure里如何制作输入框控制滑动评分条的原型模板,可以通过鼠标左右拖动滑块,也可以点击条形让滑块移动到指定位置,标签和输入框里会返回具体的分值,分值由滑块所在的位置动态计算而成;也可以在输入框里输入…...

【学习笔记】[AGC064C] Erase and Divide Game

有点难😅,看到比自己低一级的选手场切这道题就更绷不住了😇 考虑 从低到高位 建立 trie \text{trie} trie 树,但是因为是对反串建立的,所以编号连续的点在 trie \text{trie} trie 树上的位置是分散的😅 …...

算法通关村-----数组中元素出现次数问题

数组中出现次数超过一半的数字 问题描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。详见剑指offer39 问题分析 最直接的方式就是使用hashMap,遍历给定数组&#xff0c…...

Qt-键盘消息的传递-键盘消息的获取-C++

文章目录 1.概述2.焦点3.强制获取键盘消息4.键盘常用组合方法5.总结 1.概述 QKeyEvent 类用来描述一个键盘事件。当键盘按键被按下或者被释放时,键盘事件便会被发送给拥有键盘输人焦点的部件。 QKeyEvent 的 key() 函数可以获取具体的按键,对于 Qt 中给…...

数据结构与算法(五)--链表概念以及向链表添加元素

一、前言 今天我们学习另一种非常重要的线性数据结构–链表,之前我们已经学习了三种线性数据结构,分别是动态数组,栈和队列。其中队列我们额外学习了队列的另一种实现方式–循环队列。其实我们自己实现过前三个数据结构就知道,它…...

计算机视觉与深度学习-图像分割-视觉识别任务02-目标检测-【北邮鲁鹏】

目录标题 参考目标检测定义深度学习对目标检测的作用单目标检测多任务框架多任务损失预训练模型姿态估计 多目标检测问题滑动窗口(Sliding Window)滑动窗口缺点 AdaBoost(Adaptive Boosting)参考 区域建议 selective search 思想慢…...

Flink——Flink检查点(checkpoint)、保存点(savepoint)的区别与联系

Flink checkpoint Checkpoint是Flink实现容错机制最核心的功能,能够根据配置周期性地基于Stream中各个Operator的状态来生成Snapshot,从而将这些状态数据定期持久化存储下来,从而将这些状态数据定期持久化存储下来,当Flink程序一…...

[篇五章五]-如何禁用 Windows Defender-我的创作纪念日

################################################## 目录 禁用掉烦人的 Windows Defender 在本地组策略编辑器中禁用 Windows Defende 关闭 Microsoft Defender 防病毒 禁止 Defender 开机自动运行 重新激活 Windows Defender #######################################…...

什么情况下使用微服务?

单体架构图参考网络: 1. 什么是单体应用 单体应用就是将应用程序的所有功能都打包成一个独立的单元,最终以一个WAR包或JAR包存在,没有外部的任何依赖,里面包含DAO、Service、UI等所有的逻辑。 优点: 1&…...

【Linux】Ubuntu美化主题【教程】

【Linux】Ubuntu美化主题【教程】 文章目录 【Linux】Ubuntu美化主题【教程】1. 安装优化工具Tweak2.下载自己喜欢的主题3. 下载自己喜欢的iconReference 1. 安装优化工具Tweak 首先安装优化工具Tweak sudo apt-get install gnome-tweak-tool安装完毕后在菜单中打开Tweak 然后…...

spring-boot2.x,使用EnableWebMvc注解导致的自定义HttpMessageConverters不可用

在json对象转换方面,springboot默认使用的是MappingJackson2HttpMessageConverter。常规需求,在工程中使用阿里的FastJson作为json对象的转换器。 FastJson SerializerFeatures WriteNullListAsEmpty :List字段如果为null,输出为[],而非nu…...

2023-09-20 Android CheckBox 让文字显示在选择框的左边

一、CheckBox 让文字在选择框的左边 &#xff0c;在布局文件里面添加下面一行就可以。 android:layoutDirection"rtl" 即可实现 android:paddingStart"10dp" 设置框文间的间距 二、使用的是left to right <attr name"layoutDirection">&…...

目标检测YOLO实战应用案例100讲-基于改进YOLOv5的口罩人脸检测

目录 前言 国内外研究现状 目标检测研究发展 国内外口罩人脸检测研究现状...

CentOS7 yum安装报错:“Could not resolve host: mirrorlist.centos.org; Unknown error“

虚拟机通过yum安装东西的时候弹出这个错误&#xff1a; 1、查看安装在本机的网卡 网卡ens33处于disconnected的状态 nmcli d2、输入命令&#xff1a; nmtui3、选择网卡&#xff0c;然后点击edit 4、移动到Automatically connect按空格键选择&#xff0c;然后移动到OK键按空格…...

关于token续签

通常我们会对token设置一个有效期&#xff0c;于是&#xff0c;就有了token续签的问题。由于token并没有续时机制&#xff0c;如果不能及时的替换掉过期的token&#xff0c;可能会拦截用户正常的请求&#xff0c;用户只能重新登录&#xff0c;如果提交的信息量很大&#xff0c;…...

淘宝分布式文件存储系统( 二 ) -TFS

淘宝分布式文件存储系统( 二 ) ->>TFS 目录 : 大文件存储结构哈希链表的结构文件映射原理及对应的API文件映射头文件的定义 大文件存储结构 : 采用块(block)文件的形式对数据进行存储 , 分成索引块,主块 , 扩展块 。所有的小文件都是存放到主块中的 &#xff0c;扩展块…...

Java中synchronized:特性、使用、锁机制与策略简析

目录 synchronized的特性互斥性可见性可重入性 synchronized的使用方法synchronized的锁机制常见锁策略乐观锁与悲观锁重量级锁与轻量级锁公平锁与非公平锁可重入锁与不可重入锁自旋锁读写锁 synchronized的特性 互斥性 synchronized确保同一时间只有一个线程可以进入同步块或…...

为什么93%的DeepSeek PR被拒?揭秘CI流水线自动拦截的4类“伪Clean”代码陷阱

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;为什么93%的DeepSeek PR被拒&#xff1f;揭秘CI流水线自动拦截的4类“伪Clean”代码陷阱 DeepSeek 开源仓库的 CI 流水线以严苛著称——最新统计显示&#xff0c;93% 的 PR 在 pre-commit 阶段即被自动…...

API集成管理之核心产品核心能力与数据盘点

API集成管理是企业数字化转型中的核心基础设施&#xff0c;它解决的是系统之间如何高效、安全、可控地进行数据交换与业务协同的问题。一套完善的API集成管理方案&#xff0c;能够帮助企业打通数据孤岛、实现能力复用、构建开放生态。本文基于公开资料&#xff0c;对五款代表性…...

终极UE4SS游戏Mod开发指南:从零开始掌握虚幻引擎脚本系统

终极UE4SS游戏Mod开发指南&#xff1a;从零开始掌握虚幻引擎脚本系统 【免费下载链接】RE-UE4SS Injectable LUA scripting system, SDK generator, live property editor and other dumping utilities for UE4/5 games 项目地址: https://gitcode.com/gh_mirrors/re/RE-UE4S…...

开源OmenSuperHub:解决惠普OMEN笔记本性能限制的完整技术方案

开源OmenSuperHub&#xff1a;解决惠普OMEN笔记本性能限制的完整技术方案 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度&#xff0c;自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 第一部分&#xff1a;技术挑战分…...

3分钟掌握Windows任务栏投资助手:打造你的桌面股票监控中心

3分钟掌握Windows任务栏投资助手&#xff1a;打造你的桌面股票监控中心 【免费下载链接】TrafficMonitorPlugins 用于TrafficMonitor的插件 项目地址: https://gitcode.com/gh_mirrors/tr/TrafficMonitorPlugins 想在Windows任务栏上实时监控股票行情&#xff0c;又不想…...

别再只盯着应力云图了!用ANSYS Workbench的‘圣维南原理’和模型简化,把你的计算效率提升200%

别再只盯着应力云图了&#xff01;用ANSYS Workbench的‘圣维南原理’和模型简化&#xff0c;把你的计算效率提升200% 有限元分析工程师常常陷入一个误区&#xff1a;认为模型越精细&#xff0c;结果越准确。但现实情况是&#xff0c;一个未经合理简化的复杂模型不仅会消耗大量…...

AI智能体技能库构建:从标准化接口到安全实践

1. 项目概述&#xff1a;从“技能库”到“智能体”的进化之路最近在折腾AI智能体开发的朋友&#xff0c;估计都绕不开一个核心问题&#xff1a;如何让一个智能体真正“能干”&#xff0c;而不仅仅是“能聊”&#xff1f;这背后&#xff0c;就是“技能”的构建与管理。今天要聊的…...

从零到一:OWASP ZAP实战渗透测试全流程解析

1. OWASP ZAP入门&#xff1a;渗透测试的瑞士军刀 第一次接触OWASP ZAP时&#xff0c;我完全被它复杂的界面吓到了。但用了三个月后&#xff0c;我发现这简直是Web安全测试的"瑞士军刀"——功能强大但需要正确打开方式。简单来说&#xff0c;ZAP就是个会自动帮你找网…...

C语言-指针二

一. 指针的操作int main() {int a 10 , b 20, c 30;int *p NULL, *q NULL;p &a;//对指针变量p本身进行修改b *p;//*p为右值表示对变量a的读取*p 60;//*p为左值表示通过指向的内存空间对变量a的写入p &c;//p指向的内存空间发生变化b *p;//对c的读取操作*p 70…...

金融机器学习实战:MlFinLab工具包核心模块解析与应用指南

1. 从零到一&#xff1a;为什么我们需要一个金融机器学习的“瑞士军刀”&#xff1f;如果你和我一样&#xff0c;在量化金融和算法交易这条路上摸爬滚打了好几年&#xff0c;那你一定经历过这样的场景&#xff1a;为了复现一篇顶级期刊论文里的某个特征工程方法&#xff0c;你需…...