检测数据的方法(回顾)
- 检测数据类型的4种方法
- typeof
- instanceof
- constructor
- {}.toString.call()
检测数据类型的4种方法
typeof
定义
用来检测数据类型的运算符
返回一个字符串,表示操作值的数据类型(7种)
number,string,boolean,object,undefined,symbol,function
使用方法1:typeof(value)
使用方法2:typeof value
typeof(null)
注意: typeof(null) === 'object'
(这是浏览器遗留的BUG:所有的值都以二进制编码存储,浏览器中把前三位000的当作对象,而null的二进制前三位是000,所以识别为对象,但他不是对象,而是空指针对象,是基本类型值)
typeof(undefined)
typeof undefined === ‘undefined’
注意:typeof 未声明的变量,返回 'undefined'
typeof a;//'undefined'
typeof typeof a;//'string'
instanceof
定义:用来检测某个实例是否属于这个类,返回布尔值
==》 当前类的原型只要出现在实例的原型链上就返回 true
使用方法:实例 instanceof 类
优点:弥补 typeof 无法细分对象类型的特点
局限性:
- 只能检测对象数据类型
'a' instanceod Object;//false
// 例如
ImageryProvider instanceof Cesium.ImageryProvider
- 构造函数创建的基本类型可以检测
var a = new String('a')
a instanceof Object
万物皆对象,数组对象正则都是 Object的实例
constructor
定义:判断当前的实例的 constructor 的属性值,返回函数
==》 利用他的实例的构造函数检测
==》 一般实例.constructor === 类.prototype.constructor
使用方法:实例.constructor === 类
优点:能够检测所有的数据类型,包括自定义类
function Person (){...}
new Person().constructor; //ƒ Person (){}
缺点:JS中的 constructor 是不被保护的,可以重定向
Array.constructor;// f Array () {}
Array.constructor = 1;// 1
{}.toString.call() 推荐
定义:对象原型上的toString方法,能返回当前实例所属类的信息 ==》返回字符串
使用方法:Object.prototype.toString.call(被检测的实例)
优点:基本能基础所有的数据类型
console.log({}.toString.call(1));// '[object Number]'
console.log({}.toString.call('a'));// '[object String]'
console.log({}.toString.call(true));// '[object Boolean]'
console.log({}.toString.call(Symbol.for('a')));// '[object Symbol]'
console.log({}.toString.call(undefined));// '[object Undefined]'
console.log({}.toString.call(null));// '[object Null]'
console.log({}.toString.call({}));// '[object Object]'
console.log({}.toString.call([]));// '[object Array]'
console.log({}.toString.call(/a/g));// '[object RegExp]'
局限性:自定义类都返回 '[object Object]'
function Test(a){this.a = 1}
let test = new Test(1)
console.log({}.toString.call(test))//'[object Object]'
相关文章:
检测数据的方法(回顾)
检测数据类型的4种方法typeofinstanceofconstructor{}.toString.call() 检测数据类型的4种方法 typeof 定义 用来检测数据类型的运算符 返回一个字符串,表示操作值的数据类型(7种) number,string,boolean,object,u…...
比特数据结构与算法(第三章_上)栈的概念和实现(力扣:20. 有效的括号)
一、栈(stack)栈的概念:① 栈是一种特殊的线性表,它只允许在固定的一端进行插入和删除元素的操作。② 进行数据插入的删除和操作的一端,称为栈顶 。另一端则称为 栈底 。③ 栈中的元素遵守后进先出的原则,即…...
JVM13 类的生命周期
1. 概述 在 Java 中数据类型分为基本数据类型和引用数据类型。基本数据类型由虚拟机预先定义,引用数据类型则需要进行类的加载。 按照 Java 虚拟机规范,从 class 文件到加载到内存中的类,到类卸载出内存为止,它的整个生命周期包…...
Docker网络模式解析
目录 前言 一、常用基本命令 (一)查看网络 (二)创建网络 (三)查看网络源数据 (四)删除网络 二、网络模式 (一)总体介绍 (二)…...
游山城重庆
山城楼梯多,路都是上坡。 为了赶早上8点从成都到重庆的动车,凌晨5点半就爬起床来,由于昨天喝了咖啡,所以我将尽3点才睡觉,这意味着我只睡了2个多小时。起来简单休息之后,和朋友协商好时间就一起出门了。 …...
Vuex的创建和简单使用
Vuex 1.简介 1.1简介 1.框框里面才是Vuex state:状态数据action:处理异步mutations:处理同步,视图可以同步进行渲染1.2项目创建 1.vue create 名称 2.运行后 3.下载vuex。采用的是基于vue2的版本。 npm install vuex3 --save 4.vu…...
Arduino IDE搭建Heltec开发板开发环境
Arduino IDE搭建Heltec开发板开发环境Heltec开发板开发环境下载与搭建Arduino IDE下载与安装搭建Heltec开发板的开发环境添加package URL方法通过Git的方法安装离线安装Heltec开发板开发环境下载与搭建 Arduino IDE下载与安装 Heltec的ESP系列和大部分的LoRa系列开发板都是用A…...
Using the GNU Compiler Collection 目录翻译
文章目录Introduction1 Programming Languages Supported by GCC2 Language Standards Supported by GCC2.1 C Language3 GCC Command Options3.1 Option Summary4 C Implementation-Defined Behavior6 Extensions to the C Language Family9 Binary Compatibility其他工具10 g…...
使用 OpenCV for Android 进行图像特征检测
android 开发人员,可能熟悉使用activities, fragments, intents以及最重要的一系列开源依赖库。但是,注入需要本机功能的依赖关系(如计算机视觉框架)并不像在 gradle 文件中直接添加实现语句那样简单!今天,将专注于使用 OpenCV 库…...
chatGPT笔记
文章目录 一、GPT之技术演进时间线二、chatGPT中的语言模型instructGPT跟传统语言LM模型最大不同点是什么?三、instructGPT跟GPT-3的网络结构是否一样四、GPT和BERT有啥区别五、chatGPT的训练过程是怎样的?六、GPT3在算数方面的能力七、GPT相比于bert的优点是什么八、元学习(…...
这么好的政策和创新基地,年轻人有梦想你就来
周末有空去参观了下一个朋友办的公司。位置和环境真不错,且租金低的离谱,半年租金才2000元,且提供4个工位。这个创新基地真不赖啊,国家鼓励创新创业,助力年轻人实现梦想。场地有办公区,休息区应有尽有&…...
【Kubernetes】【十九】安全认证
第九章 安全认证 本章节主要介绍Kubernetes的安全认证机制。 访问控制概述 Kubernetes作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。所谓的安全性其实就是保证对Kubernetes的各种客户端进行认证和鉴权操作。 客户端 在Kubernetes集群…...
Apache Flink 实时计算在美的多业务场景下的应用与实践
摘要:本文整理自美的集团实时数据负责人、资深数据架构师董奇,在 Flink Forward Asia 2022 主会场的分享。本篇内容主要分为四个部分: 实时生态系统在美的的发展和建设现状 核心传统业务场景 Flink 实时数字化转型实践 新兴业务场景 Flink …...
27 pandas 数据透视
文章目录pivot_table 函数1、index需要聚合的列名,默认情况下聚合所有数据值的列2、values在结果透视的行上进行分组的列名或其它分组键【就是透视表里显示的列】3、columns在结果透视表的列上进行分组的列名或其它分组键4、Aggfunc聚合函数或函数列表(默…...
1.2 学习环境准备
文章目录1.MariaDB简介2.MariaDB服务端和客户端安装1.MariaDB简介 因为MariaDB作为MySQL的延申,其包含MySQL所有的有点,并且其包含了更丰富的特性。比如微秒的支持、线程池、子查询优化、组提交、进度报告等; 所以我们接下来将已MariaDB作为…...
Http1.0协议常识
组织:中国互动出版网(http://www.china-pub.com/)RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)E-mail:ouyangchina-pub.com译者:黄晓东(黄晓东 xd…...
“终于懂了” 系列:组件化框架 ARouter 完全解析(三)AGP/Transform/ASM—动态代码注入
ARouter系列文章: “终于懂了” 系列:组件化框架 ARouter 完全解析(一)原理全解 “终于懂了” 系列:组件化框架 ARouter 完全解析(二)APT—帮助类生成 “终于懂了” 系列:组件化框架…...
传闻腾讯引进Quest 2?我觉得可行性很低
根据36kr最新消息称,腾讯XR团队解散后,确定不碰XR硬件领域,但并未完全放弃XR规划,将转变思路和玩法,业内消息称腾讯计划引进Meta旗下Quest 2 VR一体机。消息称,该计划在2022年11月份XR部门负责人沈黎走后便…...
【数据集】CMIP6气候模式数据下载
1 CMIP6简介 目前,国际耦合模式比较计划(Coupled Model Intercomparison Project, CMIP) 已经发展到第六阶段(CMIP6)。CMIP6模式采用了较以往更加合理的参数化方案,综合考虑了大气中温室气体排放、气溶胶浓度及社会经济、科学技术发展及政府规划等多方面的综合影响,将提…...
华为OD机试 - 最长的元音字符串 | 机试题算法思路 【2023】
最近更新的博客 华为OD机试 - 简易压缩算法(Python) | 机试题算法思路 【2023】 华为OD机试题 - 获取最大软件版本号(JavaScript) 华为OD机试 - 猜字谜(Python) | 机试题+算法思路 【2023】 华为OD机试 - 删除指定目录(Python) | 机试题算法思路 【2023】 华为OD机试 …...
收藏!小白/程序员转行Agent必看,4步理清学习思路,轻松具备求职竞争力
如今,AI领域的风口早已到来,Agent作为当下最热门的赛道之一,掌握其相关技能,无疑能让你在就业市场中脱颖而出,成为企业争抢的核心人才。无论是刚入门的编程小白,还是想转型的资深程序员,Agent都…...
工业机器人离线编程与仿真——RobotStudio基础学习3.27
工业机器人离线编程与仿真——RobotStudio基础学习 一、工业机器人离线编程认知 1.1 工业机器人常用编程方法 工业机器人主流编程方法分为示教编程和离线编程两类,二者核心差异体现在编程环境、对生产的影响等方面,具体对比见下表: 示教编…...
Qwen2.5-VL-7B-InstructGPU优化指南:视觉特征缓存机制与响应速度实测对比
Qwen2.5-VL-7B-Instruct GPU优化指南:视觉特征缓存机制与响应速度实测对比 1. 项目概述与优化背景 Qwen2.5-VL-7B-Instruct作为一款先进的多模态视觉-语言模型,在处理图像和文本交互任务时展现出强大能力。但在实际部署中,我们发现其GPU资源…...
AI辅助游戏开发新体验:让快马平台的AI模型为你的Superpowers项目编写剧情与平衡技能
最近在尝试用Superpowers框架开发一款魔法题材的RPG游戏,发现InsCode(快马)平台的AI辅助功能特别适合快速原型开发。这里分享下如何用AI模型辅助完成游戏剧情脚本和技能平衡设计的实践过程。 剧情脚本生成 输入"魔法学校学徒发现古老卷轴"这个简单设定后&…...
BEAST 2 终极指南:如何快速掌握贝叶斯分子进化分析工具
BEAST 2 终极指南:如何快速掌握贝叶斯分子进化分析工具 【免费下载链接】beast2 Bayesian Evolutionary Analysis by Sampling Trees 项目地址: https://gitcode.com/gh_mirrors/be/beast2 BEAST 2(Bayesian Evolutionary Analysis by Sampling T…...
NOKOV度量光学动捕系统赋能骨科手术机器人 破解股骨骨折微创植板精度难题
在精准医疗、医疗机器人的行业发展趋势下,股骨骨干骨折微创钢板植入手术的精度难题成为骨科临床与医工交叉领域的研究重点。山东大学张勤河教授团队重磅研发双模式机器人辅助股骨干骨折钢板植入方法,依托NOKOV 度量光学三维动捕系统实现手术轨迹的精准采…...
C语言完美演绎6-19
/* 范例:6-19 */#include <stdio.h>void main(){for(int a 1,sum0;a<10;sum suma,a)/*将所有的条件写入*/; }...
微服务通信:同步 vs 异步与MQ选型指南
微服务通信:同步 vs 异步与MQ选型指南 基于黑马程序员《SpringCloud微服务开发与实战》MQ篇整理。本文深度解析微服务间两种通信模式的核心差异,并提供主流消息队列(RabbitMQ、RocketMQ、Kafka)的技术选型决策框架。 一、同步调用…...
手机相册端侧文本搜图方案调研
手机相册端侧文本搜图方案调研 调研日期:2026-04-02(UTC) 目标场景:手机相册中存在大量图片,需要支持基于自然语言的本地搜图;希望模型与系统架构可在骁龙平台端侧执行,并具备后续接入 tag/caption 与 rerank 的可扩展性。 一、结论摘要 已有现成开源例子,最接近目标场…...
无障碍技术实践:OpenClaw+Phi-3-vision-128k-instruct构建语音图文助手
无障碍技术实践:OpenClawPhi-3-vision-128k-instruct构建语音图文助手 1. 项目背景与动机 去年夏天,我在一次志愿者活动中遇到几位视障开发者。他们提到日常工作中最大的障碍不是编程本身,而是无法快速获取图像信息和处理文档内容。这让我开…...
