我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JS中的四种数据类型判断方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JS中的四种数据类型判断方法

本文总结了四种判断方法:

1、typeof

typeof是一个运算符,其有两种使用方式:(1)typeof(表达式); (2)typeof 变量名;返回值是一个字符串,用来说明变量的数据类型;所以可以用此来判断number, string, object, boolean, function, undefined, symbol 这七种类型,每种情况返回的内容如下表所示:


// 字符串 
console.log(typeof('lili')); // string 
// 数字 
console.log(typeof(1)); // number 
// 布尔值 
console.log(typeof(true)); // boolean 
// undefined 
console.log(typeof(undefined)); // undefined 
// 对象 
console.log(typeof({})); // object 
// 数组 
console.log(typeof([])); // object 
// null 
console.log(typeof(null)); // object 
// 函数 
console.log(typeof(() => {})); // function 
// Symbol值 
console.log(typeof(Symbol())); // symbol 

2、instanceof

instanceof运算符用于检测构造函数的 prototype属性是否出现在某个实例对象的原型链上,返回值为布尔值,用于指示一个变量是否属于某个对象的实例。其语法如下所示:


object instanceof constructor 


const arr = [1, 2]; 
// 判断Object的prototype有没有在数组的原型链上 
console.log(arr instanceof Object); // true 
// 数组arr的原型 
const proto1 = Object.getPrototypeOf(arr); 
console.log(proto1); // [] 
// 数组arr的原型的原型 
const proto2 = Object.getPrototypeOf(proto1); 
console.log(proto2); // [] 
// Object的prototype 
console.log(Object.prototype); 
// 判断arr的原型是否与Object的prototype相等 
console.log(proto1 === Object.prototype); // false 
// 判断arr的原型的原型是否与Object的prototype相等 
console.log(proto2 === Object.prototype); // true 
 


3、constructor

该种判断方式其实涉及到原型、构造函数和实例之间的关系,更深层次的讲解将放到后面的内容,下面只需要简单了解一下这三者关系即可。

在定义一个函数(构造函数)的时候,JS引擎会为其添加prototype原型,原型上有其对应的constructor属性指向该构造函数,从而原型和构造函数之间互相知道对方。当构造函数实例化的时候,会产生对应的实例,其实例可以访问对应原型上的constructor属性,这样该实例就可以了解到通过谁产生了自己,这样就可以在新对象产生之后了解其数据类型。


const val1 = 1; 
console.log(val1.constructor); // [Function: Number] 
const val2 = 'abc'; 
console.log(val2.constructor); // [Function: String] 
const val3 = true; 
console.log(val3.constructor); // [Function: Boolean] 


虽然该方法可以判断其数据类型,但存在两个缺点:

  • null undefined 是无效的对象,因此是不会有 constructor 存在的,这两种类型的数据需要通过其他方式来判断。
  • 函数的 constructor 是不稳定的,这个主要体现在自定义对象上,当开发者重写 prototype 后,原有的 constructor 引用会丢失,constructor 会默认为 Object

4、toString()

toString() Object 的原型方法,调用该方法,默认返回当前对象的 [[Class]] 。这是一个内部属性,其格式为[object Xxx] ,其中 Xxx 就是对象的类型。所以利用Object.prototype.toString()方法可以对变量的类型进行比较准确的判断。

该类型针对不同不同变量的类型返回的结果如下所示:

利用该方法很容易构建一个鉴型函数,代码如下所示:


function type(target) { 
    const ret = typeof(target); 
    const template = { 
        "[object Array]": "array",  
        "[object Object]":"object", 
        "[object Number]":"number - object", 
        "[object Boolean]":"boolean - object", 
        "[object String]":'string-object' 
    } 
    if(target === null) { 
        return 'null'; 
    } 
    else if(ret == "object"){ 
        const str = Object.prototype.toString.call(target); 
        return template[str]; 
    } 
    else{ 
        return ret; 
    } 
} 


console.log(type({})); // object 
console.log(type(123)); // number 
console.log(type('123')); // string 

到此这篇关于JS中的四种数据类型判断方法的文章就介绍到这了,更多相关JS中的数据类型判断方法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JS中的四种数据类型判断方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

JS数据类型判断的9种方式总结

谈到JS的类型判断大家应该都不陌生,下面这篇文章主要给大家介绍了关于JS数据类型判断的9种方式,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2022-12-29

javascript中判断数据类型的方法

这篇文章主要介绍了javascript中判断数据类型的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。js判断数据类型的方法:1、利用typeof操作符,语法“typeof
2023-06-15

JavaScript中检测数据类型的四种方法总结

这篇文章主要为大家详细介绍了四个JavaScript中检测数据类型的常用方法,文中的示例代码讲解详细,具有一定的参考价值,需要的可以参考一下
2023-05-16

JavaScript怎么判断数据类型?8 种方式分享

JavaScript怎么判断数据类型?本篇文章给大家分享JS 判断数据类型的 8 种方式,有效帮助工作和面试,面试官看了微微一笑。
2023-05-14

python输入数据判断数据类型的方法是什么

在Python中,可以使用`type()`函数来判断数据的类型。例如:```pythondata = input("请输入数据:")data_type = type(data)print("数据类型为:", data_type)```上述代
2023-08-11

python中的数据类型怎么判断

在Python中,可以使用type()函数来判断一个对象的数据类型。例如:x = 5print(type(x)) # 输出:y = 3.14print(type(y)) # 输出:z = "Hello"print(type(z)
2023-10-25

C#中怎么判断数据类型

C#中怎么判断数据类型,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。通过这段代码,可以实现C#判断数据类型using System; using System.Colle
2023-06-18

第十八天- 类型判断 函数和方法判断 反

# isinstance type issubclass 内置函数:# 1.issubclass() 这个内置函数可判断xxx类是否是yyy类型的子类# issubclass(子类,父类) 1 class Base: 2 pas
2023-01-30

如何在JavaScript中判断数据类型

如何在JavaScript中判断数据类型?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。javascript是一种什么语言javascript是一种动态类型、弱类型的语言,基于对
2023-06-14

JavaScript判断数据类型的方式有哪些

这篇文章主要介绍“JavaScript判断数据类型的方式有哪些”,在日常操作中,相信很多人在JavaScript判断数据类型的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript判断数
2023-07-05

JavaScript中检测数据类型的四种方法分别是什么

这期内容当中小编将会给大家带来有关JavaScript中检测数据类型的四种方法分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。前言:在介绍检测数据类型的方法之前,先说说JavaScript中数据类
2023-06-26

js中各种数据类型检测和判定的实战示例

typeof一般被用于判断一个变量的类型,我们可以利用typeof来判断number,string,object,boolean,function,undefined,symbol这七种类型,下面这篇文章主要给大家介绍了关于js中各种数据类型检测和判定的相关资料,需要的朋友可以参考下
2022-11-13

javascript判断是否为数字类型的方法

小编给大家分享一下javascript判断是否为数字类型的方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!方法:1、利用typeof关键字和isNaN()函数判断;2、利用typeof关键字和isFinite()函数判断
2023-06-14

编程热搜

目录