JavaScript判断类型的方法

JavaScript判断类型的方法1 操作符 1 typeof 操作符格式 type typeofvariab 能判断类型有 number string boolean symbol undefined function object array null 的类型都返回 object 返回值为字符串 一共七种 number string boolean undefined symbol function object 判断时也应该加上引号 表示字符串 typeoff function typeof

1.操作符

(1)typeof操作符

  • 格式:type=typeof variable
  • 能判断类型有:number、string、boolean、symbol、undefined、function、bigint(ECMAScript 2020 新增);
  • object、array、null 的类型都返回 object
  • 返回值为字符串。一共8种(number、string、boolean、undefined、symbol、bigint、function、object)
//判断时也应该加上引号,表示字符串 typeof f === 'function' typeof NaN === 'number'

typeof NaN返回number!!!

(2)instanceof操作符:用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。

格式:result=variable instanceof constructor

返回值:true false

function Father() { } let f = new Father(); function Son(){ } Son.prototype = new Father(); let s = new Son(); let d = new Number(12) console.log(f instanceof Father);// true console.log(s instanceof Father);// true console.log(d instanceof Number); //true console.log(12 instanceof Number); //false,不能判断不是用new创建的基本数据类型

2. 方法

(1)constructor.name

function Foo() { } var f1 =new Foo(); console.log(f1.constructor);//ƒ Foo() { [native code] } console.log(f1.constructor.name);//Foo var d = new Number(1) console.log(d.constructor.name) // Number var date = new Date(); console.log(date.constructor.name)// Date var arr = [1, 'abc']; console.log(arr.constructor.name) // Array var reg = /i+/gi; console.log(reg.constructor.name) // RegExp

(2)Object.prototype.toString() 为 Object 对象的实例方法,默认情况下(即不重写该方法),toString()返回 “[object type]”,其中type是对象的类型。

Object.prototype.toString.call(arr) === '[object Array]';//true
[object Object] [object Number] [object Undefined] [object Null] [object String]  [object BigInt]

返回的是类型,所以都是大写首字母!!

  • 可以区分 null 、 string 、boolean 、 number 、 undefined 、 array 、 function 、 object 、 date 、 math 数据类型。
  • 缺点:不能细分为谁谁的实例

3.笔记

要注意 ‘hello’ 和 new String(‘hello’) 的区别,前者是字符串字面值,属于原始类型,而后者是对象。用 typeof 运算符返回的值也是完全不一样的:

typeof 'hello'; // 'string' typeof new String('hello'); // 'object'

String 表示构造函数,’string’ 表示变量的数据类型为字符串。

如果问类型是否为String,则应该判断是否为通过new String得到的,是属于引用类型,用xxx instanceof String即可判断。

如果问类型是否为string,那就是在问该变量是否为一个基本类型的字符串,用typeof xxx === ‘string’来判断

var str1=new String('str1'); var str2='str2'; console.log(typeof str1);//object console.log(typeof str2);//string console.log(str1 instanceof String);//true console.log(str2 instanceof String);//false //如果想要判断字面量形式的string和new出的string均为string,可以添加如下方法: String.prototype.isString=function(str){ return ((str instanceof String) || (typeof str).toLowerCase() == 'string'); }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/199895.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午11:58
下一篇 2026年3月20日 上午11:59


相关推荐

  • navicat15永久激活码mac[在线序列号]

    navicat15永久激活码mac[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    91
  • 一文搞懂大模型:基于大语言模型的智能体(LLM-based Agents)

    一文搞懂大模型:基于大语言模型的智能体(LLM-based Agents)

    2026年3月16日
    2
  • DHCP option82字段「建议收藏」

    DHCP option82字段「建议收藏」DHCPoption82字段的添加1.添加option82字段1.添加option82字段option82是dhcp报文中的中继代理信息选项(relayagentinformationoption),抓取上行的dhcp报文,根据目的端口为67的报文进行处理,解析报文,在原始报文的基础上添加option82字段,添加之后进行ip,udp的重新校验值的计算,然后发往PON口。温馨提示:以上文章描述如有不清晰之处,欢迎在评论区评论,如有时间,会第一时间回复,谢谢!…

    2022年10月16日
    3
  • keras卷积层_keras实现全卷积神经网络

    keras卷积层_keras实现全卷积神经网络分组卷积在pytorch中比较容易实现,只需要在卷积的时候设置group参数即可比如设置分组数为2conv_group=nn.Conv2d(C_in,C_out,kernel_size=3,stride=3,padding=1,groups=2)但是,tensorflow中目前还没有分组卷积,只能自己手动编写分组卷积函数。在编写程序之前大家要先理解分组卷积的形式,也就是对特征图在通道上进行划分,例如设置group=3,对输入特征图通道划分成三组,输出特征图也要划分成3组,再对三组输入输出特

    2025年6月23日
    6
  • mysql初始化设置_MySQL初始化设置

    mysql初始化设置_MySQL初始化设置1 初始化数据 usr local mysql bin mysqldinitia insecureuser mysqldatadir opt mysql databasedir opt mysql2 配置文件 vim etc my cnf mysqld basedir usr local mysqldatadir usr local mysql mydat

    2026年3月17日
    2
  • GELU激活函数

    GELU激活函数论文 GAUSSIANERRO GELUS 项目 https github com hendrycks GELUsABSTRAC 本文提出了高斯误差线性单元 GELU 一个高性能的神经网络激活函数 GELU 激活函数为 x x x x x x 其中 x x x 为标准高斯累积分布函数 GELU 非线性根据输入的值来权重 而不是像 ReLUs x1x gt 0x1 x gt 0 x1x gt 0 那样通过符号来门输入 本文对 ReLU 和 ELU 激活的 G

    2026年3月19日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号