iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JS中的四种数据类型判断方法
  • 331
分享到

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

2024-04-02 19:04:59 331人浏览 独家记忆
摘要

目录1、typeof2、instanceof3、constructor4、toString() 本文总结了四种判断方法: 1、typeof typeof是一个运算符,其有两种使用方式

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

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中的数据类型判断方法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: JS中的四种数据类型判断方法

本文链接: http://www.lsjlt.com/news/156906.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • JS中的四种数据类型判断方法
    目录1、typeof2、instanceof3、constructor4、toString() 本文总结了四种判断方法: 1、typeof typeof是一个运算符,其有两种使用方式...
    99+
    2024-04-02
  • 利用JS判断数据类型的四种方法
    目录前言1、typeof 2、instanceof 3、constructor 细节问题:4、toString 总结前言 Javascript 中的数据类型判断其实是一个JavaSc...
    99+
    2024-04-02
  • JS数据类型判断的9种方式总结
    目录前言typeof:检测基础数据类型和函数很好用constructor:返回实例对象的构造函数instanceof:沿着原型链去找Object.prototype.toString...
    99+
    2022-12-29
    js的数据类型判断 js判断数据类型方法 js基本数据类型判断
  • JS中数据类型的正确判断方法实例
    目录前言 typeof是否能正确判断类型? instanceof是否能正确判断类型? Object.prototype.toString.call() constructor Arr...
    99+
    2024-04-02
  • javascript中判断数据类型的方法
    这篇文章主要介绍了javascript中判断数据类型的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。js判断数据类型的方法:1、利用typeof操作符,语法“typeof...
    99+
    2023-06-15
  • JavaScript中检测数据类型的四种方法
    目录1. typeof2. instanceof3. constructor(构造函数)4. Object.prototype.toString.call()前言:在介绍检测数据类型...
    99+
    2024-04-02
  • js怎样判断对象的数据类型
    这篇文章主要介绍js怎样判断对象的数据类型,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!判断对象的数据类型使用Object.prototype.toString配合闭包来实现对象数据...
    99+
    2024-04-02
  • 分享JavaScript 类型判断的几种方法
    目录一、JavaScript 基本类型1、原始数据类型2、引用数据类型3、两种数据类型的存储方式二、Javascript 数据类型判断的几种方法1、typeof2、instanceo...
    99+
    2024-04-02
  • JavaScript中检测数据类型的四种方法总结
    目录检测数据类型1:typeof检测数据类型2:instanceof检测数据类型3:constructor检测数据类型4:Object.prototype.toString.call...
    99+
    2023-05-16
    JavaScript检测数据类型方法 JavaScript检测数据类型 JavaScript数据类型
  • python 判断数据类型
    import types  aaa = 0print type(aaa)  if type(aaa) is types.IntType:      print "the type of aaa is int"  if isinstance(...
    99+
    2023-01-31
    数据类型 python
  • JavaScript怎么判断数据类型?8 种方式分享
    JavaScript怎么判断数据类型?本篇文章给大家分享JS 判断数据类型的 8 种方式,有效帮助工作和面试,面试官看了微微一笑。1、typeof只能识别基础类型和引用类型注意:null、 NaN、 document.all 的判断cons...
    99+
    2023-05-14
    前端 JavaScript 面试
  • python中的数据类型怎么判断
    在Python中,可以使用type()函数来判断一个对象的数据类型。例如: x = 5 print(type(x)) # 输出: ...
    99+
    2023-10-25
    python
  • python输入数据判断数据类型的方法是什么
    在Python中,可以使用`type()`函数来判断数据的类型。例如:```pythondata = input("请输入...
    99+
    2023-08-11
    python
  • C#中怎么判断数据类型
    C#中怎么判断数据类型,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。通过这段代码,可以实现C#判断数据类型using System;  usi...
    99+
    2023-06-18
  • 第十八天- 类型判断 函数和方法判断 反
      # isinstance type issubclass 内置函数:# 1.issubclass() 这个内置函数可判断xxx类是否是yyy类型的子类# issubclass(子类,父类) 1 class Base: 2...
    99+
    2023-01-30
    函数 类型 方法
  • JavaScript中检测数据类型的四种方法分别是什么
    这期内容当中小编将会给大家带来有关JavaScript中检测数据类型的四种方法分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。前言:在介绍检测数据类型的方法之前,先说说JavaScript中数据类...
    99+
    2023-06-26
  • js类型判断的示例分析
    这篇文章给大家分享的是有关js类型判断的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。js类型转换中typeof会将null也识别为object, 而且返回的类型比少,我...
    99+
    2024-04-02
  • 如何在JavaScript中判断数据类型
    如何在JavaScript中判断数据类型?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。javascript是一种什么语言javascript是一种动态类型、弱类型的语言,基于对...
    99+
    2023-06-14
  • JavaScript判断数据类型的方式有哪些
    这篇文章主要介绍“JavaScript判断数据类型的方式有哪些”,在日常操作中,相信很多人在JavaScript判断数据类型的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript判断数...
    99+
    2023-07-05
  • JavaScript怎么判断数据类型
    小编给大家分享一下JavaScript怎么判断数据类型,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!判断数据类型使用 Object.prototype.toStr...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作