前端最基础面试题:说说JavaScript中如何判断数据类型?

news2025/1/16 16:50:27

1. 基本数据类型的判定:typeof [变量名]

typeof 1 // 'number'
typeof 'string呀' // 'string'
typeof true // 'boolean'
typeof Symbol('abc')  // 'symbol'

控制台验证:
原始数据类型

2. 引用类型 object 的判断: ① constructor ② instanceof ③ Object.prototype.toString.call()

也可以说是数组和对象的区分方法。

var arr=[];//arr.constructor Array
var obj={};//obj.constructor Object
//在控制台输入
arr.constructor
"ƒ Array() { [native code] }"

arr instanceof Array
"true"

obj.constructor
"ƒ Object() { [native code] }"

[] instanceof Array
"true"

obj instanceof Object
"true"

注意:{} instanceof Object会报错,可能是函数的{},用变量obj接受,如图:
在这里插入图片描述

Object.prototype.toString.call():

Object.prototype.toString.call([])
"[object Array]"

Object.prototype.toString.call({})
"[object Object]"

Object.prototype.toString.call(123)
"[object Number]"

Object.prototype.toString.call('123')
"[object String]"

Object.prototype.toString.call(true)
'[object Boolean]'

Object.prototype.toString.call(undefined)
'[object Undefined]'

Object.prototype.toString.call(null)
'[object Null]'

Object.prototype.toString.call(Symbol())
'[object Symbol]'

3. 两个特殊类型用typeof 的结果:

特殊类型
null为object是历史遗留问题,js最初是这么设计的。有兴趣的自行查找资料。

4. 补充:新增数据的类型 BigInt,仍属于基本数据类型:

JS 中的Number类型只能安全地表示 -9007199254740991 和 9007199254740991,
-(2^53-1)到 (2^53-1) 之间的整数,任何超出此范围的整数值都可能失去精度。

Number.MAX_SAFE_INTEGER
// 9007199254740991
Number.MIN_SAFE_INTEGER
// -9007199254740991
let bigN=Number.MAX_SAFE_INTEGER // bigN 为 9007199254740991
typeof bigN
// 'number'

如图:
最大最小值

失去精度的数

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

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

相关文章

Redux与前端表格施展“组合拳”,实现大屏展示应用的交互增强

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。它可以用在 react、angular、vue 等项目中, 但与 react 配合使用更加方便一些。 Redux 原理图如下,可以看到store仓库是Redux的核心,通过维护一个store仓库管理 state。state 是只读的…

JS严格模式(use strict)

javascript语法不够严谨,例如我们在项目中不用关键字去定义了一个变量a,控制台一切正常。b123;console.log(b)但是,如果开启了严格模式呢?"use strict" b123; console.log(b)此时将会报错Uncaught ReferenceError: b is…

开关电源中功率电感均方根电流是如何推导的?来自《开关电源宝典》

3.2.8 功率电感的有效电流参考“1.7.3 功率电感”章节内容,我们知道,功率电感具有温升电流、RMS电流、饱和电流、额定电流等电流参数。在后续“第5章 降压电路的应用方法”应用实例中进行功率电感选型时,需要保证所选电感的额定电流参数大于实…

自定义类型:结构体,枚举,联合(1)

tips 1. 2. 结构基础知识复习 1. 结构是一些值的集合,这些值被称为成员变量,结构的每个成员可以是不同类型的变量。 2. 结构体类型,结构体成员,结构体变量,结构体指针的创建方式 3. 初始化结构体变量的时候&…

华为开源自研AI框架昇思MindSpore应用实践:FGSM网络对抗攻击

目录一、环境准备1.进入ModelArts官网2.使用CodeLab体验Notebook实例二、对抗样本定义三、攻击方法快速梯度符号攻击(FGSM)四、数据处理五、训练LeNet网络六、实现FGSM七、运行攻击近年来随着数据、计算能力、理论的不断发展演进,深度学习在图…

老板要求总部-分部异地组网,作为IT运维怎样才能避免踩坑?

最近在开年会,老板提出2023年要全面搭建30个分公司的广域网架构,总部和分公司网络实现统一管理。但是公司原有网络架构复杂,各分支又是不同运营商接入的现状,想要实现异地组网并不容易!然而,老板还不断提出…

好用的基于vue的组织架构图组件

都是基于vue的组织架构图,有支持vue2.x和vue3.x,可自行选择使用 一、vue-okr-tree(支持vue2) 文档地址:vue2-okr-tree 这个文档里面只有使用方法,不像vue3-tree-org里面有详细的介绍和安装引入教程 1.安装与引入 n…

第一章 spring框架概述

1.Spring框架概述*Spring是轻量级的开源的JavaEE框架*可以解决企业应用开发的复杂性*有两个核心的部分:IOC、AOPIOC:控制反转,把创建对象的过程交给Spring进行管理AOP:面向切面,不修改源代码的情况下进行功能的增加*Sp…

ThreadLocal与nheritableThreadLocal的区别及使用

ThreadLocal 多线程环境中,共享变量的并发修改常常导致线程同步问题,ThreadLocal可以存储线程私有的本地变量,从而使线程之间的变量相互隔离 因为ThreadLocal在线程执行的上下文可以传递变量的特性,所以可以很好的解决变量值传递…

PostgreSQL11 | pgsql建表、改表与删表

上一篇文章 PostgreSQL11 | pgadmin4基本使用http://t.csdn.cn/PKpde已经讲解了最简单的pgadmin的数据库创建、外键等可视化的操作,以及对应的pgsql语句 这一篇文章将讲解基础的pgsql语句 建表、改表与删表 目录 建表、改表与删表 创建数据表 单字段主键 多…

12.0、VMware-Linux部署springboot项目(图文超详细教程)

12.0、VMware-Linux部署springboot项目(图文超详细教程) 第一步:启动 Linux 进入 root 用户,打开终端 输入以下命令 -> 查看 Linux 中是否已经装有 jdk ; java -version 1.如果有,需要先将原来的 jdk …

ESP-IDF:使用multimap和vector容器给新员工随机分配部门并按照部门打印

例程&#xff1a; /* 创建5个员工&#xff0c;给5个员工随机分配部门&#xff0c;然后按照部门打印员工*/ #include #include #include #include <time.h> #define SALEDEPARTMENT 1 #define RDDEPARTMENT 2 #define MEDEPARTMENT 3 class worker { public: string …

10分钟做好 Bootstrap Blazor 的表格组件导出 Excel/Word/Html/Pdf

上篇: Bootstrap Blazor 实战 通用导入导出服务(Table组件) 1.新建工程 新建工程b14table dotnet new blazorserver -o b14table将项目添加到解决方案中&#xff1a; dotnet sln add b14table/b14table.csproj使用 nuget.org 进行 BootstrapBlazor 组件安装, FreeSql sqlite…

在线阅读网站|基于Springboot+Vue开发实现小说阅读网站

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容&#xff1a;Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路 关注作者有好处 文末获取源…

探索SpringMVC-HandlerAdapter之RequestMappingHandlerAdapter

前言 在RequestMappingHandlerAdapter的第一篇文章《探索SpringMVC-HandlerAdapter之RequestMappingHandlerAdapter-参数解析》我们从方法调用的角度提出了三个问题。前面两篇分别回答了方法入参、返回值处理这两个问题。而第三个问题则是由异常处理器负责的&#xff0c;不属于…

栈的讲解及实现(图解+代码/C语言)

今天为大家分享的是栈的模拟实现&#xff0c;本文主要讲解如何以数组的形式模拟实现&#xff0c;同时给出链表模拟实现栈的代码。 目录 图解栈的结构数组模拟栈的分步实现 创建并初始化入栈检测栈是否为空出栈获取栈顶元素获取栈内有效元素个数销毁栈 链表模拟实现栈 模拟思…

学习笔记:统计建模方法的比较分析

前言本文介绍了隐马尔可夫模型 (HMM)、最大熵马尔可夫模型 (MEMM) 和条件随机场 (CRF) 的比较分析。 HMM、MEMM 和 CRF 是三种流行的统计建模方法&#xff0c;通常应用于模式识别和机器学习问题。 让我们更详细地探讨每种方法。一、隐马尔可夫模型 (HMM)“隐藏”一词象征着只有…

node ~ zip压缩 文件加密

我们知道zip压缩,文件加密都是基于http的,下面我用用node实现着几个功能 zip压缩/解压 let zlib require(zlib); // 核心 let path require(path); let fs require(fs);// 压缩流 将1.txt压缩成1.txt.gz function gzip(source){ //source文件目录let gzip zlib.createGzi…

[Android]View的事件分发机制(源码解析)

目录 1.分发对象-MotionEvent 2.如何传递事件 1.传递流程 2.事件分发的源码解析 3.主要方法&#xff1a; 4.事件传递中listener 5.滑动冲突如何用事件分发处理 1.分发对象-MotionEvent 事件类型有&#xff1a; 1.ACTION_DOWN-----手指刚接触屏幕 2.ACTION_MOVE------手…

ASIC和FPGA,选择哪种设计比较好?

很多人都觉得同样都是写Verilog的&#xff0c;ASIC和FPGA其实并没有什么区别&#xff0c;其实并不是这样。那么ASIC和FPGA&#xff0c;选择哪种设计比较好&#xff1f;接下来IC修真院就来为大家细细分析。 ASIC (Application Specific Integrated Circuit)&#xff0c;即专用集…