数据类型检测的底层机制

@1 typeof用于检测基本数据类型,
        原理机制、采用的是计算机底层存储二进制检测,效率比较快。
        null在计算机存储二进制的过程中是64个零,而typeof判断的话前三位都为0的时候是object。
        typeof只能检测基本数据类型, 在检测Array Object null 返回值都是object。

@2 instanceof 用于检测对象类型,无法准确区分object array
        检测基本数据类型 返回的结果是 false
        1 instanceof Number // false 
        new Array(1) instanceof Number // true
        arr instanceof Array // true
        arr instanceof object // true 
        object instanceof  object // true
        object instanceof Array // false 
        
@3 constructor 用于构造函数原型的constructor指向构造函数本身来辨别的
        console.log([].constructor == Array)
        VM7631:1 true
        console.log({}.constructor == Object)
        VM7756:1 true
        console.log(1.constructor == Number)
         VM7756:1 false

@4 object.prototype.tostring.call(value)  内置构造函数的原型对象上基本上都有tostring这个方法
        只要把object.prototype.tostring执行,方法中的this是谁检测结果就是谁【object ?】           console.log(Object.prototype.toString.call('1'))
        VM8801:1 [object String]
        console.log(Object.prototype.toString.call(1))
        VM8932:1 [object Number]
        console.log(Object.prototype.toString.call([]))
        VM9063:1 [object Array]
        console.log(Object.prototype.toString.call({}))
        VM9082:1 [object Object]
        console.log(Object.prototype.toString.call(null))
        VM9237:1 [object Null] 

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

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

相关文章

attachShadow样式隔离和JavaScript 沙箱

微服务样式隔离的原理是利用 Shadow DOM 技术来隔离各个微前端应用的样式。Shadow DOM 是 Web 标准的一部分,它允许将 DOM 树封装到一个隔离的影子 DOM 中,这样各个微前端应用的样式就不会相互影响,从而实现样式的隔离。 Qiankun 在每个微前端…

【重点】【BFS】542.01矩阵

题目 法1&#xff1a;经典BFS 下图中就展示了我们方法&#xff1a; class Solution {public int[][] updateMatrix(int[][] mat) {int m mat.length, n mat[0].length;int[][] dist new int[m][n];boolean[][] used new boolean[m][n];Queue<int[]> queue new Li…

软件工具集合

代码文档自动生成工具&#xff1a; Doxygen download 软件分析工具&#xff1a; perf gdb flamegraph 代码量统计&#xff1a; vscode插件&#xff1a;VS Code Counter 代码备注 vsocde插件&#xff1a; Line Note

Spring Boot 3 集成 Thymeleaf

在现代的Web开发中&#xff0c;构建灵活、动态的用户界面是至关重要的。Spring Boot和Thymeleaf的结合为开发者提供了一种简单而强大的方式来创建动态的Web应用。本文将介绍如何在Spring Boot项目中集成Thymeleaf&#xff0c;并展示一些基本的使用方法。 什么是Thymeleaf&#…

未来已来,Ai原生应用与人高度结合!学习就在现在?

原生应用&#xff1a;OpenAI™ChatGPT、Baidu.Inc™文心一言 也可以体验CSDN的INSCODE AI&#xff0c;集成多个国内GPT内容。 文章目录 前言----编程语言的未来&#xff1f;一、编程语言的教育1.1 学校所见所闻1.2 开启我们的Ai行程~io&#xff01;1.3 Ai结果评论 二、Ai编程教…

信息学奥赛一本通-编程启蒙3295:【例50.1】陶陶摘苹果

3295&#xff1a;【例50.1】陶陶摘苹果 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 2838 通过数: 1922 【题目描述】 陶陶家的院子里有一棵苹果树&#xff0c;每到秋天树上就会结出1010个苹果。苹果成熟的时候&#xff0c;陶陶就会跑去摘苹果。陶陶有个3030厘…

Linux环境vscode clang-format格式化:vscode clang format command is not available

问题现象 vscode安装了clang-format插件&#xff0c;但是使用就报错 问题原因 设置中配置的clang-format插件工具路径不正确。 解决方案 确认本地安装了clang-format工具&#xff1a;终端输入clang-format&#xff08;也可能是clang-format-13等版本&#xff0c;建议tab自…

[NISACTF 2022]popchains

[NISACTF 2022]popchains wp 题目代码&#xff1a; Happy New Year~ MAKE A WISH <?phpecho Happy New Year~ MAKE A WISH<br>;if(isset($_GET[wish])){unserialize($_GET[wish]); } else{$anew Road_is_Long;highlight_file(__FILE__); } /**********************…

AI实景无人直播创业项目:开启自动直播新时代,一部手机即可实现增长

在当今社会&#xff0c;直播已经成为了人们日常生活中不可或缺的一部分。无论是商家推广产品、明星互动粉丝还是普通人分享生活&#xff0c;直播已经渗透到了各行各业。然而&#xff0c;传统直播方式存在着一些不足之处&#xff0c;如需现场主持人操作、高昂的费用等。近年来&a…

Android Studio 报错Failed to find Build Tools revision 28.0.3

目录 前言 一、报错信息 二、报错原因 三、解决方案 四、更多资源 前言 当Android Studio报错提示"Failed to find Build Tools revision 28.0.3"时&#xff0c;通常意味着您的项目需要使用28.0.3版本的构建工具&#xff0c;但系统中并没有找到对应的版本。这可…

西电期末1020.寻找同数

一.题目 二.分析与思路 其实就是寻找字串的个数&#xff0c;以前好像是有类似的题&#xff0c;先找到子串的首字符&#xff0c;再判断 三.代码实现 #include<bits/stdc.h>//万能头 bool f(char* s,char* sub,int i,int l){for(int j0;j<l;j){if(s[ji]!sub[j])retu…

计算机组成原理复习

一、计算机系统概论 计算机由硬件和软件两大部分组成 软件分系统软件和应用软件翻译程序有两种&#xff1a;编译程序和解释程序冯诺依曼计算机的特点&#xff1a; 计算机由运算器、存储器、控制器、输入设备和输出设备五大部分组成。指令和数据以同等地位存放于存储器内&#…

如何成为ChatGPT 优质Prompt创作者

如何提问&#xff1f; 我想让你成为我的Prompt创作者。你的目标是帮助我创作最佳的Prompt&#xff0c;这个Prompt将由你ChatGPT使用。你将遵循 以下过程&#xff1a;1.首先&#xff0c;你会问我Prompt是关于什么&#xff1f;我会告诉你&#xff0c;但我们需要 通过不断的重复来…

labelme 标注的数据集转化为Mask-Rcnn适用的数据集

labelme 标注的数据集转化为Mask-Rcnn适用的数据集 食用步骤 1.labelme标注数据时&#xff0c;将生成的json文件和原图保存在一起 2.只需提供labelme生成的数据的文件夹&#xff0c;和maskrcnn的数据集文件夹&#xff0c;运行代码就会自动进行处理 3.代码会在提供的maskrcn…

brew 安装使用 mysql、redis、mongodb

在 Mac 生态中 brew 真是个万能神器&#xff0c;今天就来介绍一下怎么使用 brew 安装 mysql、redis、mongodb&#xff0c;以及如何使用 brew 启动、关闭、重启这些服务。 前言 brew 常用命令 # 查看brew的版本 brew -v# 更新homebrew自己&#xff0c;把所有的Formula目录更新…

索引类型-哈希索引

一. 前言 前面我们简单介绍了数据库的B-Tree索引&#xff0c;下面我们介绍另一种索引类型-哈希索引。 二. 哈希索引的简介 哈希索引(hash index) 基于哈希表实现&#xff0c;只有精确匹配索引所有列的查询才有效。对于每一行数据&#xff0c;存储引擎都会对所有索引列计算一个…

安卓11通过脚本修改相应板型系统属性

安卓10以后rk的一套源码兼容很多板型&#xff0c;多种cpu型号都兼容了&#xff0c;这一点相比之前省心了很多&#xff0c;所以就诞生了需要一套代码兼容多种板子的需求&#xff0c;定制修改中需要经常修改系统属性&#xff0c;通过以下脚本一次实现&#xff1a; #!/bin/bashfu…

华为 1+X《网络系统建设与运维(初级)》 认证实验上机模拟试题

华为 1X《网络系统建设与运维&#xff08;初级&#xff09;》认证实验上机模拟试题 一、考试背景二、考试说明2.1考试分数说明2.2考试要求2.3考试环境介绍2.4启动考试环境2.5保存答案 三、考试正文3.1考试内容3.1.1任务 1&#xff1a;设备连接3.1.2任务 2&#xff1a;设备命名3…

IDEA UML图

这个帖子介绍IDEA UML图 文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 今天看landmark代码&#xff0c;然后想看一下UML图&#xff0c;这边整理一下相关知识点。 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考…