js判断数据类型(全)

article/2025/10/19 14:09:07

js基本数据类型

  1. 基本数据类型:
    String、Number、Boolean、Undefined未定义、null空、symbol表示独一无二的值(es6引入的新的原始数据基本类型)。
    Number:返回的特殊值NaN,表示不是数值,用于表示本来要返回的数值的操作失败了。
    String:字符串是不可变的,一旦创建,值就不能变了。做的字符串操作是先对原字符串进行销毁再创建的。
    null:null值表示一个空对象指针,typeof null 结果是object。
    symbol(符号):是原始值,且实例是唯一、不可变的。用途是确保对象属性使用唯一标识符,不会发生属性冲突的危险。
  2. 引用类型:
    对象Object、数组Array、函数function
    函数存在三种常见的表达方式:
    1.函数声明 function sum(a,b){return a+b;}
    2.函数表达式 let sum = function(a,b){return a+b};
    3.箭头函数 let sum = (a,b)=>{return a+b;}

查看数据类型

  1. typeof
    typeof对于一些类型的处理只返回了处于其原型链最顶端的object类型。
    引用类型除了function返回function类型之外,其他都返回object。
    ○ NaN的数据类型是number
    ○ 数组(Array)和日期Date的数据类型是object
    ○ 不能检测出null,检测null的数据类型是object

  2. toString
    toString是Object的原型方法,调用该方法,返回当前对象的[[class]]。对于Object对象,直接调用toString()就可以返回,对于其他类型需要通过call()/apply()来调用才能返回正确的类型信息。
    使用:
    Object.prototype.toString.call(‘’ '); //[[Object String]]

  3. constructor
    无法判断null和undefined
    原型prototype的一个属性,函数被定义的时候,js引擎会为函数添加原型prototype,并且这个prototype种constructor属性指向函数应用。
    使用:
    [].constructor ==Array //true
    new Date().constructor == Date //true

  4. instanceof
    用来判断A是否为B的实例,A instanceof B,如果A是B的实例,返回true否则返回false。instanceof检测的是原型。
    在这里插入图片描述

    可以看出[] 的原型指向Array.prototype,间接指向Object.prototype,因此 [] instanceof Array 返回true,[] instanceof Object 也返回true。

    instanceof只能判断两个对象之间是否属于实例关系,不能判断一个对象属于哪种类型。

  5. typeof与instanceof的区别
    1.typeof返回字符串,也就是返回一个变量基本类型,instanceof返回布尔值
    2.instanceof相对来说,更适合判断:一个对象是否是一个构造函数的实例 。对于类型的判断存在不确定性:例如一个数组,它的_proto_原型执行Array.prototype,间接指向Object.prototype,因此 [] instanceof Array 返回true,[] instanceof Object 也返回true。
    3.typeof存在弊端,无法检测null类型和除了function以外的引用类型。

  6. 怎样判断是否是数组

    1. Array.isArray(arr)== true;
    2. arr.constructor()=== Array ;
    3. Object.prototype.toString.call(arr) === “[object Array]”

7.什么不直接Object.prototype.toString().call(arr),为什么要放在call()中

  1. 两个toString根本不是同个方法,object本身是一个构造函数,任意一个函数自身的toString方法都是继承自function构造函数。而Object原型下面的构造函数是返回对象内部的class值。

  2. 虽然Array也继承自Object,但js在Array.prototype上重写了toString,而我们通过toString.call(arr)实际上是通过原型链调用了。


http://chatgpt.dhexx.cn/article/Tp0AuKRF.shtml

相关文章

判断JS数据类型的五种方法

JavaScript 中常见的几种数据类型: 目录 JavaScript 中常见的几种数据类型: 一、分类 二、判断 1、typeof null既然属于基本数据类型,为什么用typeof返回的是object呢? js小数运算出现的问题(精度丢失) 解决方法一 解决方…

Linux 文件类型及常用命令(2)(cp、mv、cat、more、less、head、tail、chmod、getenforce)

1、命令 cp:拷贝(类似于Windows系统的复制,但区别是可以重命名) 拷贝文件、目录(需要使用 -r 参数),可以重命名。 2、命令 mv:移动或重命名 ①如果是在当前目录下移动&#xff0c…

Linux验证SELinux状态

安全增强型Linux(SELinux)是一个Linux内核的功能,它提供支持访问控制的安全政策保护机制。记录操作如何验证SELinux,并且避免系统无法启动的问题。 以root权限执行:sudo su - 运行命令getenforce,验证SELi…

Linux 查看 SELinux 的状态

可以运行下面的命令来查看当前服务配置的 SELinux 的状态。 getenforce 上面的输出状态显示了当前 SELinux 的配置状态。 如果上图显示当前的状态。 临时禁用 SELinux 。 使用下面的命令来临时禁用 SELinux。 setenforce 0 Linux 查看 SELinux 的状态 - 系统和容器 - OSSE…

Android Senlinux 基础说明

一、SELinux 三种模式简介 Enforcing:强制模式。代表SELinux在运行中,且已经开始限制domain/type之间的验证关系Permissive:宽容模式。代表SELinux在运行中,不过不会限制domain/type之间的验证关系,即使验证不正确&…

如何关闭防火墙和selinux操作

在每次部署相关软件的时候总是会遇到各种奇奇怪怪的问题,多半是防火墙没有关,或者是selinux没有关 如何关闭防火墙: 那先来看一下防火墙的状态:systemctl status firewalld 如果是下图所示开着的,那就把它给关了&am…

Linux下如何关闭SELinux的图文教程(完整版)

大家好! 最近遇到Mysql数据启动报错的问题,于是发现是因为SELinux没有关闭,那么这篇文章就简单的记录SElinux是如何让关闭的。 前言 SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现…

Android8.x/9.x/10.x user版本关闭selinux以及打开UART控制台输入和关闭内核日志输出功能

1、user版本关闭selinux 仅限于系统调试时使用,量产版本需要将其设置回去成ELINUX_ENFORCING模式。 1.1)背景 C:\Users\zhaojr> adb root C:\Users\zhaojr> adb remount C:\Users\zhaojr> adb shell ac8257:/ # getenforce getenforce Enforcing这个表明…

GeForce Experience 绕过登录与禁止自动更新

本文说明了,如何在未注册Nvidia账户的情况下,绕过GeForce Experience(以下简称为GFE)账户登录的方法,从而直接使用登陆后才能使用的各种功能。在PC未联网的情况下,此方法依旧能正常绕过登录,直接…

adb shell getenforce/setenforce(三级命令)

adb shell getenforce adb shell setenforce

PyTorch官方教程(中文版)

PyTorch官方教程(中文版) TENSOR概述初始化向量对Tensor的操作转移存储位置到GPU张量的切片操作张量的合并操作张量乘法将单元素tensor转换为基本数据类型 与NumPy的联系tensor转numpynumpy转tensor DATASETS & DATALOADERS载入数据集迭代和可视化数…

pytorch基础教程(目标检测)

文章目录 1 python ;两大法宝函数2 加载数据3 TensorBoard 的使用4 transforms的使用5 torchvision中的数据集使用6 dataloader的使用7 卷积操作8 卷积层9 最大池化10 非线性激活11 线性层12 Sequential的使用13 损失函数14 优化器15 现有网络模型的使用及修改16 网…

总结 | 深度学习之Pytorch入门教程

目录 一、整体学习的建议 1.1 如何成为Pytorch大神? 1.2 如何读Github代码? 1.3 代码能力太弱怎么办? 二、Pytorch与TensorFlow概述 2.1 什么是Pytorch? 2.1.1 Pytorch两个核心模块 2.1.2 Pytorch可视化:Visdom 2.1.3 Pyt…

面向Windows的Pytorch完整安装教程

目录 1. 概述 2. 安装 2.1 安装cuda 2.2 安装cudnn 2.3 安装Pytoch 2.4 验证 1. 概述 PyTorch是一个开源的Python机器学习库,其前身是著名的机器学习库Torch。2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyT…

pytorch新手自学教程(一)

Pytorch详细新手自学教程(一) 前言Tensor(张量)Variable (变量) 前言 本教程参考书籍《深度学习入门之pytorch》 -----关于pytorch的优点这里不再说明,毕竟现在的主流仍然是TensorFlow。 1、环境配置可到pytorch官网搜索下载包的pip或conda指…

GPU版本安装Pytorch教程最新方法

目录 步骤 第一步:安装 Anaconda 和 Pycharm 软件 第二步:下载安装CUDA11.3 (1)首先查看自己电脑GPU版本 方式一:搜索框输入nvidia,打开nvidia控制面板 方式二:winR打开cmd,输…

pytorch官方教程中文版(一)PyTorch介绍

pytorch编程环境是1.9.1cu10.2 建议有能力的直接看官方网站英文版! 下面所示是本次教程的主要目录: pytorch官方教程中文版: PyTorch介绍学习PyTorch图像和视频声音文本强化学习在生产环境中部署PyTorch模型使用FX重构代码前端API扩展PyT…

【PyTorch入门教程】1. 基础知识

欢迎关注 【LearnOpenCV: PyTorch入门教程】 PyTorch入门:Ch1 基础知识 PyTorch入门:[Ch2 使用预训练模型进行图像分类] PyTorch入门:[Ch3 使用迁移学习进行图像分类] PyTorch入门:[Ch4 使用ONNX和Caffe2进行模型推理] PyTorch入门…

PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】笔记

PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】笔记 教程与代码地址P1 PyTorch环境的配置及安装(Configuration and Installation of PyTorch)【PyTorch教程】P2 Python编辑器的选择、安装及配置(PyCharm、Jup…

【超详细】Pytorch 入门教程(一)

Pytorch基本语法 1 认识Pytorch2 Pytorch的基本元素操作3 Pytorch的基本运算操作4 关于Torch Tensor和Numpy array之间的相互转换5 总结1 认识Pytorch 什么是Pytorch? Pytorch是一个基于Numpy的科学计算包, 向它的使用者提供了两大功能. 作为Numpy的替代者, 向用户提供使用GPU…