js 使用Object.toString.call()判断数据类型

news/2024/11/17 9:58:17/

使用Object.toString.call()判断数据类型
使用Object.toString.call()可以用来判断:

判断基本数据类型
判断复杂数据类型
判断null和undefined
需要注意的是,Object.prototype.toString 方法返回的字符串格式为 “[object 数据类型]”,其中数据类型和 JavaScript 中的数据类型名称一致。此外,由于该方法是 Object 类型的原型方法,因此需要通过 call 方法来调用,确保 this 指向正确。

const num2 = 0;
console.log('object.toString.call(num2)',Object.prototype.toString.call(num2))//[object Number]const str1 = '卡卡西'
console.log('object.toString.call(str1)',Object.prototype.toString.call(str1))// [object String]const obj2 = {name:'佐助',age:'23'}
console.log('object.toString.call(obj2)',Object.prototype.toString.call(obj2))//[object Object]const arr2 = [1,2,3,4];
console.log('object.toString.call(arr2)',Object.prototype.toString.call(arr2))//[object Array]const nullValue2 = null
console.log('object.toString.call(nullValue2)',Object.prototype.toString.call(nullValue2))//[object Null]class Student {name;constructor(name) {this.name = name;}}const student1 = new Student('周周');
console.log('object.toString.call(student1)',Object.prototype.toString.call(student1))// [object Object]class Student2 {name;constructor(name) {this.name = name;}toString(){console.log(this.name)}// 重写 Symbol.toStringTag 属性get [Symbol.toStringTag]() {return 'Student2';}
}const student2 = new Student2('周周')
console.log('object.toString.call(student2)',Object.prototype.toString.call(student2))// [object Student2]

http://www.ppmy.cn/news/1423018.html

相关文章

PHP中常见的@注释的含义

api: 提供给第三方使用的接口 author: 标明作者 param: 参数 return: 返回值 todo: 待办 version: 版本号 inheritdoc: 文档继承 property: 类属性 property-read: 只读属性 property-write: 只写属性 const: 常量 deprecated: 过期方法 example: 示例 final: 标识类是终态, 禁…

历史遗留问题1-Oracle Mysql如何存储数据、索引

在学习到Oracle redo和undo时,涉及到很多存储结构的知识,但是网上的教程都不是很详细,就去复习了一下mysql,感觉是不是开源的问题,Mysql的社区和知识沉淀远高于Oracle, 对于初学者很友好,我想请…

Linux 软路由命令行配置(参考)

# 默认丢弃转发,所有内网流量不能访问外网卡 iptables -P FORWARD DROP # 允许任何地址到任何地址的确认包和关联包通过 iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # SNAT 源地址转换 iptables -t nat -A POSTROUTING -s 192.168.0.0/…

【Web】DASCTF 2023 0X401七月暑期挑战赛题解

目录 EzFlask MyPicDisk ez_cms ez_py 让俺看看401web题 EzFlask 进来直接给了源码 import uuidfrom flask import Flask, request, session from secret import black_list import jsonapp Flask(__name__) app.secret_key str(uuid.uuid4())def check(data):for i i…

08-GPtimer

通用定时器 (GPTimer) 通用定时器简介 通用定时器可用于准确设定时间间隔、在一定间隔后触发(周期或非周期的)中断或充当硬件时钟。如下图所示,ESP32-S3 包含两个定时器组,即定时器组 0 和定时器组 1。每…

为什么强调代码的“可读性”

为什么强调代码的“可读性” 你心目中的代码第一优先级要求是什么?你在提升代码可读性的一些做法语言表达明确意图层次结构 说起代码可读性,对于每一个程序员来说,或多或少的都会遇到一些这方面的坑。比如说:逻辑太复杂&#xff0…

【动态规划】C++解决斐波那契模型题目(三步问题、爬楼梯、解码方法...)

1. 前言 - 介绍动态规划算法 动态规划(Dynamic Programming,简称DP) 是一种解决复杂问题的算法设计技术,通常用于解决具有重叠子问题和最优子结构性质的问题。它将问题分解成较小的子问题,通过解决这些子问题并保存其…

状态机高阶讲解-18

2792 01:54:59,000 --> 01:54:59,740 确定 2793 01:55:00,920 --> 01:55:03,680 那就得到了这样一个状态机了 2794 01:55:03,680 --> 01:55:05,060 它是根据这个 2795 01:55:05,350 --> 01:55:07,760 属性的值 2796 01:55:08,040 --> 01:55:08,731 然后呢 …