JavaScript类型判断总结

python DEA: 基于非径向距离NDDF的Malmquist-Luenberger 指数及其分解 点赞发Nature 关注中Science Malmquist-Lenberger指数(ML指数)是距离函数与DEA计算中常用的指数,ML指数可以进一步分解为技术进步technological progress和效率改善effeciency change. 技术进步常被当做增长模型中的全要素生产率,用到许多计量经济研究中,探讨影响技术进步的环境变量。这里我分享一个考虑非期望产出下的NDDF方法计算ML指数。 该ML指数为global ML(区别于sequential ML) import numpy as 阅读详情

在对类型的识别进行总结前,首先明确一下,在JavaScript中,有八种内置类型,null,undefined,boolean,number,String,Object,Symbol(ES6中新增),BigInt(ES10新增),接下来对几种常见的类型识别进行总结。

typeof


typeof运算符是我们常用的用于检测类型的一种方式,该运算符会返回一个字符串来表示其识别到的类型,我们使用typeof对七种内置类型的类型进行检测。

typeof 1
// "number"
typeof "str"
// "string"
typeof true
// "boolean"
typeof {}
// "object"
typeof undefined
// "undefined"
typeof Symbol()
// "symbol"
typeof null
// "object"

可以发现,大部分的类型检测都符合我们的,但是null却莫名奇妙地返回了一个"object",按我们的理解它应该返回一个"null"才对。这其实是这个检测方式的一种bug,至于在后面会不会得到修改,现在还不得而知,至少我们知道在代码编写中要避免使用typeof对可能变为null的变量进行类型检测。如果非要使用typeof检测null类型,就得同时判断其转为boolean类型是否为false,我将其封装在一个方法中如下代码

function typeCheck(n){
    if(!n&&typeof n==="object")
        return "null"
    else
        return typeof n
}
typeCheck(null)
// "null"

除了上面的内容,还有一个常用的“类型”,数组,当我们使用typeof检测数组时,会直接返回"object"

typeof []
// "object"

我们见到的typeof返回的字符串除了上面见到的之外,还有一种特殊的返回字符串,就是对function使用typeof时会返回“function"

function fn(){}
typeof fn
// "function"

然而,正如我们所知道的,function实际上是object的子类,对于function的类型判断到底为哪个,取决于在代码中是否要区分方法和我们”传统“认知中的object,如果我们要模糊"function"和”object",大可在上面的代码加以修改。

此外,class在使用typeof判断时也被判断为"function"

typeof class C{}
// "function"
function typeCheck(n){
    if(!n&&typeof n==="object")
        return "null"
    else if(typeof n==="function")
        return "object"
    else
        return typeof n
}
typeCheck(typeCheck)
// "object"

对于使用new运算符构建的对象,typeof统一返回"object",即我们无法更细致地区分这些对象

而我们常见的原生函数有String(),Number(),Boolean(),Array(),Object(),Function().RegExp().Date(),Error()。这些在使用typeof检测时都返回"object"。使用typeof时我们无法很好地区分这些内容。

typeof new String()
// "object"
typeof new Number()
// "object"
typeof new Array()
// "object"
typeof new Object()
// "object"
typeof new Function()
// "function"
typeof new RegExp()
// "object"
typeof new Date()
// "object"
typeof new Error()
// "object"

除了上面常见的情况外,还有一个最新的基本类型bigint,typeof可以判断该类型

typeof 1n
// "bigint"
typeof BigInt("1")
// "bigint"

总的来说,typeof只能返回以下八个值其中一个:number,string,boolean,object,undefined,symbol,function,还有最新的bigint

判断原理

我们在上面看到了typeof判断null的时候为"object",那么为什么会为"object"呢,这要从typeof的判断原理说起

要说typeof的判断原理,我们要先从js存储变量时的二进制表示位说起,js会把机器码的低位的1-3位拿来存储其类型信息,相应类型的表示如下

  • 000 :对象
  • 010 :浮点数
  • 100 :字符串
  • 110 :布尔值
  •   1   :整数

那么,null在机器码中又是什么表示呢,答案是所有位数都为0,所以前三位自然也都是0,因此就会被判断为"object"

constructor


如果我们要判断出对象是由哪些函数构建的,我们可以通过使用对象的constructor属性来判断

new String().constructor===String
// true
new Number().constructor===Number
// true
new Array().constructor===Array
// true
new Boolean().constructor===Boolean
// true
new Object().constructor===Object
// true
new Function().constructor===Function
// true
new RegExp().constructor===RegExp
// true
new Date().constructor===Date
// true
new Error().constructor===Error
// true

正如我们所期待的,constructor出色地完成了我们的任务,成功辨别了对象由哪个函数构造的,那么constructor对于基本的内置类型又是否能完美判断呢

// 1.constructor===Number(错误写法)
// 数字字面量没有constructor
var num=1;
num.constructor===Number
// true
BigInt('1').constructor === BigInt
// true
"str".constructor===String
// true
true.constructor===Boolean
// true
Symbol().constructor===Symbol
// true
// {}.constructor===Object(错误写法)
// 对于一个直接构建的对象来说没有constructor属性
// 同样地null和undefined也没有constructor属性

可以看到,对于基本的内置属性,constructor只能判断其中的四种,其实,还有第五种,就是我们上面提及的BigInt

var num = 1n
num.constructor==BigInt
// true

除此之外,constructor还有一个需要注意的点,就是在使用继承的时候,它可能不会出现我们期待的结果

function People(){}
function Student(){}
Student.prototype=new People()
new Student().constructor===Student
// false
new Student().constructor===People
// true

可以看到Student方法构建的对象的constructor是People,这是因为在调用new Student().constructor时,我们要找到constructor属性,明显的是这个对象没有constructor属性,所以我们沿着原型链寻找该属性,而Student.prototype是new People(),而new People()中也没有constructor属性,沿着原型链我们在new People().prototype找到了该属性其值为People,所以最后出现了我们期待以外的结果。

Object.prototype.toString


首先我们还是来看看Object.prototype.toString对八种内置类型的检测,Object.prototype.toString返回的是"[Object (class)]",class的部分就是我们要的内容。

Object.prototype.toString.call(1)
// "[object Number]"
Object.prototype.toString.call("str")
// "[object String]"
Object.prototype.toString.call({})
// "[object Object]"
Object.prototype.toString.call(null)
// "[object Null]"
Object.prototype.toString.call(undefined)
// "[object Undefined]"
Object.prototype.toString.call(Symbol())
// "[object Symbol]"
Object.prototype.toString.call(true)
// "[object Boolean]"
Object.prototype.toString.call(1n)
// "[object BigInt]"

可以看到,Object.prototype.toString完美地回应了我们的期待,那来看看对于方法会返回什么

function fn(){}
Object.prototype.toString.call(fn)
// "[object Function]"

可以看到,Object.prototype.toString和typeof一样,即使function是Object的子类,还是把它判断成了”Function“。

接着来看看对于原生函数的构造时会有什么检测结果

Object.prototype.toString.call(new String())
// "[object String]"
Object.prototype.toString.call(new Number())
// "[object Number]"
Object.prototype.toString.call(new Boolean())
// "[object Boolean]"
Object.prototype.toString.call(new Array())
// "[object Array]"
Object.prototype.toString.call(new Object())
// "[object Object]"
Object.prototype.toString.call(new Function())
// "[object Function]"
Object.prototype.toString.call(new RegExp())
// "[object RegExp]"
Object.prototype.toString.call(new Date())
// "[object Date]"
Object.prototype.toString.call(new Error())
// "[object Error]"

可以看到如果我们想分辨出原生函数构造对象是由什么原生函数构造的,Object.prototype.toString是一个好的选择,而对于自定义的对象,Object.prototype就无法正确判断了

function Person(){}
var person = new Person()
Object.prototype.toString.call(person)
// "[object Object]"

instanceof


instanceof在对继承对象的判断上正确

class People{}
class Student extends People{}
new Student() instanceof Student
// true
new Student() instanceof People
// true

但是在对原始类型的判断上不尽人意

1 instanceof Number
// false
true instanceof Boolean
// false
"str" instanceof String
// false

然而,如果我们使用new来创建相应的对象,那instanceof可以正确判别

new Number(1) instanceof Number
// true
new Boolean(true) instanceof Boolean
// true
new String('str') instanceof String
// true

对于原生类型来说,instanceof看似能正确判别

[1,2,3] instanceof Array
// true
/abc/ instanceof RegExp
// true
({}) instanceof Object
// true
function fn(){}
fn instanceof Function
// true

为什么说是看似呢,我们看下面的例子

[1,2,3] instanceof Object
// true
/abc/ instanceof Object
// true
function fn(){}
fn instanceof Object
// true

可以看到,虽然我们可以通过instanceof来判断数组,正则表达式和函数,但是instanceof同样将他们当作对象,所以使用instanceof去判断这些类型时要做到在其判断为对象时也不会有问题,相关原理会在下文介绍。

而class和function一样,也会被判断为Function和Object

class C{}
C instanceof Object
// true
C instanceof Function
// true

而BigInt却连“似乎”也无法做到

1n instanceof BigInt // false
BigInt(1) instanceof BigInt // false

判断原理

instanceof的判断原理实际上就是原型链,使用代码简单表示就是

function _instanceof(leftVal,rightVal){
    leftVal = leftVal.__proto__
    const rightPro = rightVal.prototype
    while(true){
        if(leftVal === null){
            return false
        }
        if(leftVal === rightPro){
            return true
        }
        leftVal = leftVal.__proto__
    }
}

按上面的在这个函数,我们也可以解释了上面的Student继承People后为什么使用instanceof可以判断为People的类型,因为People确实是在其原型链上的

不同用法的总结


typeof

1.对其他内置类型的检测正确,在对null进行类型检测时会返回"object"

2.对方法进行检测时,会返回”function"

3.typeof对于对象统一返回"object",即使使用了不同的原生函数,typeof无法区分这些原生函数构造的对象

constructor

1.对于内置类型只能判断Number(需要将值赋给变量才能判断),Boolean,Object,Symbol,BigInt其他三种无法判断

2.对于对象能返回构造对象的构造函数名

3.当使用继承时会返回原型链末端的构造函数名

Object.prototype.toString

1.对于所有内置对象都可以判断

2.对于对象能返回构造对象的构造函数名,但自定义对象只能返回object

instanceof

1.对于对象能返回构造对象的构造函数名

2.能正确判断继承的对象

3.对于原始类型字面量无法正确判断(Number,Boolean,String),对new构造的对象可以正确判断,可以正确判断原生类型(RegExp,Array,Function,Object)

对ES6中的类型的判断


上面的内容基本都是对ES6之前的类型的判断,接下来看看对于ES6中的新类型上面的四种方法能否正确判断

Map和Set

// typeof
typeof new Set()
// "object"
typeof new Map()
// "object"

// Object.prototype.toString
Object.prototype.toString.call(new Map())
// "[object Map]"
Object.prototype.toString.call(new Set())
// "[object Set]"

// constructor
new Map().constructor===Map
// true
new Set().constructor===Set
// true

// instanceof
new Map() instanceof Map
// true
new Set() instanceof Set
// true

可以看到,对于类数组Map和Set,只有typeof没有返回我们所期待的类型

Promise

var p=new Promise((resolve,reject)=>{})
typeof p
// "object"
Object.prototype.toString.call(p)
// "[object Promise]"
p.constructor===Promise
// true
p instanceof Promise
// true

可以看到同样是typeof没有返回我们期待的类型

Proxy

var p=new Proxy({},{})
typeof p
// "object"
Object.prototype.toString.call(p)
// "[object Object]"
p.constructor===Proxy
// false
p instanceof Proxy
// Uncaught TypeError: Function has non-object prototype 'undefined' in instanceof check

可以看到没有一个返回我们期待的结果,instanceof甚至报错了,如果我们要明确知道某个变量实际上是代理的话,仅靠上面的方法是行不通的

以上就是我对JavaScript中类型检测的总结,若有什么补充之处和错漏之处请各位指出

uniapp - 应用软件在运行时,未见向用户告知权限申请的目的,向用户索取(存储、相机、电话)等权限,不符合华为应用市场审核标准(uniApp开发安卓APP上架应用市场审核被拒绝驳回,详细解决方案) uniApp应用软件在运行时,未见向用户告知权限申请的目的,向用户索取(存储、相机、电话)等权限,不符合华为应用市场审核标准。uniapp vue2 vue3解决软件在运行时,未见向用户告知权限申请的目的,华为等上架被拒问题,关于华为应用市场上架需要同步告知使用权限的解决方案,uniApp应用软件在运行时,不符合华为应用市场审核标准。解决方案合集!app上架-您的应用在运行时,未同步告知权限申请的使用目的,向用户索取(相机)等权限,不符合华为应用市场审核标准。华为应用市场审核新规(未同步告知权限申请的使用目 阅读详情

相关推荐

Uniapp+Vue3+Monorepo:如何优化你的前端开发流程(附完整配置代码)

本文详细介绍了如何利用Uniapp+Vue3+Monorepo技术栈优化前端开发流程,提升代码可维护性和团队协作效率。通过Monorepo架构实现依赖管理智能化、代码复用最大化和构建流程统一化,结合完整配置代码和实战指南,帮助开发者快速构建高性能跨端应用。

weixin_29011993的博客 453

js数据类型判断

四种方法 typeof、instanceof、constructor、Object.prototype.toString.call() 1 .typeof console.log( typeof 100, //"number" typeof 'abc', //"string" typeof false, //"boolean" typeof undefined, ...

田兴的博客 5840

Abaqus中使用Python提取裂缝数据并用matplotlib库绘图

ABAQUS后处理PYTHON二次开发代码:提取裂缝数据并用matplotlib库绘图

qq_42568527的博客 3471

如何判断元素是被proxy代理过的呢?

案例: let arr = []; let proxyer = new Proxy(arr, {}); console.log(proxyer instanceof Proxy); // 报错:Uncaught TypeError: Function has non-object prototype 'undefined' in instanceof check console.log(proxyer instanceof Array); // true console.log(proxyer.__prot

程序媛的梦工厂 5058

EEG/ERP新手必看:5本神经科学入门书籍推荐(附高清PDF下载)

本文为EEG/ERP研究新手推荐5本神经科学入门书籍,涵盖认知神经科学、数据分析、ERP技术等核心内容。特别推荐《认知神经科学—关于心智的生物学》和《事件相关电位基础》,这些书籍不仅提供理论框架,还包含实用案例和MATLAB代码,帮助研究者快速掌握脑电研究技术。附高清PDF下载,适合实验室小组学习。

weixin_29210727的博客 445

大疆精灵3无人机2.4GHz通信系统实测:跳频扩频技术深度解析

跳频扩频(FHSS)是一种经典的扩频通信技术,其核心原理是通过让载波频率在一个宽频带上按伪随机序列快速跳变,将窄带信号的能量扩散开来。这种技术能有效对抗固定频率干扰,提升通信的可靠性和抗截获性,在无线遥控、军事通信等领域具有重要价值。在无人机、物联网等对实时性与可靠性要求高的应用场景中,FHSS技术能显著增强复杂电磁环境下的链路鲁棒性。本文以频谱分析仪实测大疆精灵3无人机为例,深入剖析其2.4GHz频段遥控与图传系统的工作特性,揭示了其采用的成熟FHSS方案,包括约76MHz的总跳频带宽、39个信道及约2M

weixin_33935636的博客 310

在javascript中,instanceof实现原理

【代码】instanceof实现原理。

我的博客简介 816

OpenCL编译环境配置

在 Linux 系统上配置 OpenCL 开发环境需要安装适当的驱动、运行时和开发工具。

深之JohnChen的专栏 2003

JavaScript中0...n属性

JavaScript中On属性是返回一个 arguments 对象中的各个参数的实际值,相应的值是由一个正在执行的函数的 arguments 属性返回的。使用方法: [function.]arguments[[0|1|2|...|n]] 其中function是可选项。当前正在执行的 Function 对象的名称。 0, 1, 2, …, n是必选项。0 到 n 范围内的非负整数,其中 0

u012504864的专栏 706

一文读懂:CAN总线Bus-Off的触发条件与自动恢复机制

本文详细解析CAN总线Bus-Off状态的触发条件与自动恢复机制。根据ISO 11898-1标准,当发送错误计数器(TEC)超过255时节点进入Bus-Off状态,并通过检测128次总线空闲条件实现自动恢复。文章结合实战案例,探讨硬件故障、软件配置及电磁干扰等常见触发场景,并提供快慢恢复策略与调试方法,帮助工程师快速定位并解决CAN网络故障。

rgv234567的博客 361

PlutoSDR在matlab中的环境配置(包括驱动和硬件支持包)

双击下载到的驱动,除了点击接受协议和设置安装路径,其他只要点击下一步或者安装即可。登录或者注册你的账号,选择你的matlab版本(这里我的是2023b),点击下一步。设置安装路径,并选择我接受,点击下一步,即可安装完成,并在安装路径中得到。完成后,打开设备管理器,在端口和通用串行总线设备一栏,即可看见下图。点击进入,选择相应的系统安装包,这里我选择的Windows。可看到我们要安装的Pluto支持包,安装即可。右击桌面matlab,选择打开文件所在位置。右上角搜索pluto,选择并点击下一步。

weixin_53160338的博客 4865

js判断null_Javascript类型与类型判断

JS类型与类型判断是JS中的基础,有必要归纳总结整理一下。JS类型JS共有8种类型,如下表所示7种基本类型BooleanNullUndefinedNumberBigIntStringSymbol基本类型(基本数值、基本数据类型)是一种既非对象也无方法的数据。所有基本类型的值都是不可改变的。但需要注意的是,基本类型本身和一个赋值为基本类型的变量的区别。变量会被赋予一个新值,而原值不能像数组...

weixin_39710951的博客 230

我用 Claude Code 给 Spring Boot 老项目做了一次代码 Review:查出 4 类隐藏问题

接手 Spring Boot 老项目时,真正麻烦的往往不是编译报错,而是分散在业务代码中的空指针、N+1 查询、异常吞没和并发隐患。本文记录一次使用 Claude Code 辅助代码 Review 的完整流程,并给出提示词、Java 示例、修改方案和人工复核方法。

海波的专栏 399

【JavaScript】js中判断变量类型的几种方式

在JavaScript中有好几种判断变量类型的方式,此篇主要探讨判断变量类型的几种方式和特点。typeof 运算符返回一个字符串,表示操作数的类型。 参数:特点:适合判断常见的基本类型,引用类型需要做兼容处理才能准确区分。 instanceof instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。 可以理解为:某个实例对象(变量)来自于某个构造函数,则返回true,否则返回false。 参数:特点:如果变量值是用new创建的,也可以使用它判断类型。 Ob

qq_2511276124的博客 2628

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

JavaScript篇:JS数据类型大乱斗:谁才是类型判断的王者?

大家好,我是小杨,一个在前端圈子里摸爬滚打多年的开发者。今天咱们来聊聊 JavaScript的数据类型,以及如何准确判断它们。

欢迎来到我的前端博客!这里汇集了关于前端开发的最新技术、实用工具和经验分享。我将为你提供详细的教程、代码示例和实战案例,帮助你掌握Web开发的核心概念和技能。不论你是初学者还是有经验的开发者,这个博客都适合你。 1083

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

JavaScript判断是否为数值类型 - js的数据类型

需求 数值,或者数值型字符串,比如"123"可以通过校验。 其他类型不能通过校验。 举例 输入 结果 145 √ “145” √ “145ccc” × true × undefined × null × 对象 × 分析 首先要明确,js中一共有7种数据类型: 数值;字符串;布尔值;undefined;null;对象;symbol(ES6) 其中,对象包括:狭义的对象(object);数组(array);函数(function) 根据需求,我们需要的是先判断是数值或

weixin_43924896的博客 5442

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【javascript】js类型判断的坑,有哪些最有效的js类型判断。

通过调用Object.prototype.toString方法,并传入要判断的值,可以返回一个表示该值类型的字符串。例如,Object.prototype.toString.call(x)将返回"[object Array]"表示x是一个数组。例如,typeof x可以返回值x的类型,如"number"、“string”、“boolean”、“undefined”、“object"等。这些是JavaScript中一些最有效的类型判断方法,根据你的需求选择适合的方法进行类型判断。

qq_31894095的博客 109

[Javascript]:JS数据类型、类型判断、函数function与Function的使用

因为之前学过Java,在学习JS时,对JS的数据类型、function和Function的使用概念容易搞混淆,理解不怎么深刻。遂将这些知识点和概念梳理一遍,以便自己和他人理解。如有错误,敬请谅解。       知识点会涉及到:JS数据类型、JS的类型判断方式、函数创建方式、function与Function的区别、匿名函数的使用、函数特点以及函数重载问题。 Javascript数据类型

我只是个程序员。 1万+

JavaScript判断数据的类型

本文详细介绍了JavaScript中判断数据类型的多种方法,包括typeof、instanceof、Object.prototype.toString.call()等,并分析了它们的适用场景和局限性。typeof适用于基本类型,但对null返回object;instanceof用于检查对象是否为某个构造函数的实例,但不适用于基本类型;Object.prototype.toString.call()则能精准识别所有类型,推荐使用。此外,文章还介绍了判断数组、NaN、null、undefined等特定类型方法。

testleaf.cn 1011

JS53 判断JavaScript中变量类型的方法

方法1 typeof 不太靠谱的方法,对于基本类型是可以的 typeof 123 // "number" typeof '123' // "string" typeof true // "boolean" typeof undefined // &amp

多啦的博客 340

JavaScript——判断js数据类型(类型检测)

1、typeof运算符 typeof算是最常见的了,使用它会返回一个字符串,适合函数对象和基本类型(js中的基本类型:number、string、boolean、null、undefined、object[对象])的判断。 console.log("测试number:"+typeof 1); console.log("测试string:"+typeof "str"); console.l

yCharlee的博客 4万+

js判断类型

1)instanceof运算符判断类型 function Aaa(){ //父类 this.name = '小明' } let a = new Aaa() let str = new String('asd'); let str2 = 'asdf'; let obj = {name:'小明'}; ...

刺心的博客 4575

Javascript类型与类型判断

JS类型与类型判断是JS中的基础,有必要归纳总结整理一下。

YiYing's sharing 327

【js基础】javascript中关于数据类型一些知识和类型判断

JavaScript的数据类型包括两类:原始类型(primitive type)和对象类型(object type)。 JS中原始类型包括数字(Nubmer)、字符串(String)和布尔值(Boolean),还有两个特殊的类型:空(null)和未定义(undefined)。 JS中除了原始类型之外的就是对象(Object)了,对象数属性(prototype)的集合,每个属性都是一个键值对。其

qq_29380855的博客 483

【javascript】判断JS数据类型的四种方法

基本类型与引用类型 在 ECMAScript 规范中,共定义了 7 种数据类型,分为 基本类型 和 引用类型 两大类,如下所示: 基本类型:String、Number、Boolean、Symbol、Undefined、Null 引用类型:Object 基本类型也称为简单类型,由于其占据空间固定,是简单的数据段,为了便于提升变量查询速度,将其存储在栈中,即按值访问。 引用类型也称为复杂类型,由于...

Umbrella_Um的博客 654

js 判断undefined和null_JavaScript 数据类型与类型判断详解

一、JavaScript 数据类型JavaScript 数据类型有两种,分别是基本数据类型和引用数据类型。基本数据类型NumberStringBooleanUndefinedNullSymbol (ES6 新增,表示独一无二的值)引用数据类型ObjectFunctionArray我们来详细了解一下这两种数据类型的特点1.基本数据类型值不可变基本类型的值是 不可变 的var name = 'java...

weixin_39770165的博客 362
上一篇: webpack学习笔记(二)loader--css的打包和注入html
下一篇: JavaScript null VS undefined
前端小黑
博客等级 码龄9年 148粉丝 222原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值