广告
返回顶部
首页 > 资讯 > 精选 >javascript中判断数据类型的方法
  • 592
分享到

javascript中判断数据类型的方法

2023-06-15 11:06:14 592人浏览 八月长安
摘要

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

这篇文章主要介绍了javascript中判断数据类型的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

js判断数据类型的方法:1、利用typeof操作符,语法“typeof 变量”;2、利用instanceof运算符;3、利用constructor属性,语法“变量.constructor==数据类型”;4、利用toString()函数。

教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

javascript判断数据类型的方法

1、typeof

  typeof 是一个操作符,其右侧跟一个一元表达式,并返回这个表达式的数据类型。

  返回的结果用该类型的字符串(全小写字母)形式表示,包括以下 7 种:string、number、boolean、symbol、undefined、object、function 等。

typeof 'a'; // string 有效typeof 1; // number 有效typeof true; //boolean 有效typeof Symbol(); // symbol 有效typeof undefined; //undefined 有效typeof new Function(); // function 有效typeof null; //object 无效typeof [1] ; //object 无效typeof new RegExp(); //object 无效typeof new Date(); //object 无效

总结:

  • 对于基本类型,除 null 以外,均可以返回正确的结果。

  • 对于引用类型,除 function 以外,一律返回 object 类型。

  • 对于 null ,返回 object 类型。

  • 对于 function 返回  function 类型。

  其中,null 有属于自己的数据类型 Null ,引用类型中的数组、日期、正则 也都有属于自己的具体类型,而 typeof 对于这些类型的处理,只返回了处于其原型链最顶端的 Object 类型。

2、instanceof

  instanceof 检测的是原型,表达式为:A instanceof B,如果 A 是 B 的实例,则返回 true,否则返回 false。

[] instanceof Array; // truenew Date() instanceof Date;// true function Person(){};new Person() instanceof Person;//true [] instanceof Object; // truenew Date() instanceof Object;// truenew Person instanceof Object;// true

  虽然 instanceof 能够判断出 [ ] 是Array的实例,但它认为 [ ] 也是Object的实例,为什么呢?

   从 instanceof 能够判断出 [ ].__proto__  指向 Array.prototype,而 Array.prototype.__proto__ 又指向了Object.prototype,最终 Object.prototype.__proto__ 指向了null,标志着原型链的结束。因此,[ ]、Array、Object 就在内部形成了一条原型链,如下图所示:

javascript中判断数据类型的方法

   从原型链可以看出,[] 的 __proto__  直接指向Array.prototype,间接指向 Object.prototype,所以按照 instanceof 的判断规则,[] 就是Object的实例。依次类推,类似的 new Date()、new Person() 也会形成一条对应的原型链 。

  因此,instanceof 只能用来判断两个对象是否属于实例关系, 而不能判断一个对象实例具体属于哪种类型。

   针对数组的这个问题,ES5 提供了 Array.isArray() 方法 。该方法用以确认某个对象本身是否为 Array 类型,而不区分该对象在哪个环境中创建。

if (Array.isArray(value)){   //对数组执行某些操作}

  Array.isArray() 本质上检测的是对象的 [[Class]] 值。

  [[Class]] 是对象的一个内部属性,里面包含了对象的类型信息,其格式为 [object Xxx],Xxx 就是对应的具体类型 。对于数组而言,[[Class]] 的值就是 [object Array] 。

3、constructor

  当一个函数 F被定义时,JS引擎会为F添加 prototype 原型,然后再在 prototype上添加一个 constructor 属性,并让其指向 F 的引用。如下图所示:

javascript中判断数据类型的方法

  当执行 var f = new F() 时,F 被当成了构造函数,f 是F的实例对象,此时 F 原型上的 constructor 传递到了 f 上,因此 f.constructor == F

javascript中判断数据类型的方法

  可以看出,F 利用原型对象上的 constructor 引用了自身,当 F 作为构造函数来创建对象时,原型上的 constructor 就被遗传到了新创建的对象上, 从原型链角度讲,构造函数 F 就是新对象的类型。这样做的意义是,让新对象在诞生以后,就具有可追溯的数据类型。

  同样,JavaScript 中的内置对象在内部构建时也是这样做的,如下图所示。

javascript中判断数据类型的方法

总结:

  1. null 和 undefined 是无效的对象,因此是不会有 constructor 存在的,这两种类型的数据需要通过其他方式来判断。

  2. 函数的 constructor 是不稳定的,这个主要体现在自定义对象上,当开发者重写 prototype 后,原有的 constructor 引用会丢失,constructor 会默认为 Object。

4、toString

  toString() 是 Object 的原型方法,调用该方法,默认返回当前对象的 [[Class]] 。这是一个内部属性,其格式为 [object Xxx] ,其中 Xxx 就是对象的类型。

  对于 Object 对象,直接调用 toString()  就能返回 [object Object] 。而对于其他对象,则需要通过 call / apply 来调用才能返回正确的类型信息。

  语法:Object.prototype.toString.call(value);

Object.prototype.toString.call('') ;   // [object String]Object.prototype.toString.call(1) ;    // [object Number]Object.prototype.toString.call(true) ; // [object Boolean]Object.prototype.toString.call(Symbol()); //[object Symbol]Object.prototype.toString.call(undefined) ; // [object Undefined]Object.prototype.toString.call(null) ; // [object Null]Object.prototype.toString.call(new Function()) ; // [object Function]Object.prototype.toString.call(new Date()) ; // [object Date]Object.prototype.toString.call([]) ; // [object Array]Object.prototype.toString.call(new RegExp()) ; // [object RegExp]Object.prototype.toString.call(new Error()) ; // [object Error]Object.prototype.toString.call(document) ; // [object htmlDocument]Object.prototype.toString.call(window) ; //[object global] window 是全局对象 global 的引用

感谢你能够认真阅读完这篇文章,希望小编分享的“javascript中判断数据类型的方法”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: javascript中判断数据类型的方法

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

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

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

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

下载Word文档
猜你喜欢
  • javascript中判断数据类型的方法
    这篇文章主要介绍了javascript中判断数据类型的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。js判断数据类型的方法:1、利用typeof操作符,语法“typeof...
    99+
    2023-06-15
  • JS中的四种数据类型判断方法
    目录1、typeof2、instanceof3、constructor4、toString() 本文总结了四种判断方法: 1、typeof typeof是一个运算符,其有两种使用方式...
    99+
    2022-11-12
  • JavaScript怎么判断数据类型
    小编给大家分享一下JavaScript怎么判断数据类型,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!判断数据类型使用 Object.prototype.toStr...
    99+
    2023-06-27
  • JavaScript如何判断数据类型
    这篇文章给大家分享的是有关JavaScript如何判断数据类型的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。判断数据类型使用 Object.prototype.toString 配合闭包,在保证判断数据类型的准确...
    99+
    2023-06-27
  • javascript判断是否为数字类型的方法
    小编给大家分享一下javascript判断是否为数字类型的方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!方法:1、利用typeof关键字和isNaN()函数判断;2、利用typeof关键字和isFinite()函数判断...
    99+
    2023-06-14
  • JavaScript判断数据类型的方式有哪些
    这篇文章主要介绍“JavaScript判断数据类型的方式有哪些”,在日常操作中,相信很多人在JavaScript判断数据类型的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript判断数...
    99+
    2023-07-05
  • 如何在JavaScript中判断数据类型
    如何在JavaScript中判断数据类型?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。javascript是一种什么语言javascript是一种动态类型、弱类型的语言,基于对...
    99+
    2023-06-14
  • 分享JavaScript 类型判断的几种方法
    目录一、JavaScript 基本类型1、原始数据类型2、引用数据类型3、两种数据类型的存储方式二、Javascript 数据类型判断的几种方法1、typeof2、instanceo...
    99+
    2022-11-13
  • JS中数据类型的正确判断方法实例
    目录前言 typeof是否能正确判断类型? instanceof是否能正确判断类型? Object.prototype.toString.call() constructor Arr...
    99+
    2022-11-12
  • javascript中类型判断的最佳方式
    javascript有8种数据类型 值类型 NumberNullUndefinedStringSymbolBooleanBigInt 引用类型 ObjectArrayFunction...
    99+
    2022-11-13
  • JavaScript如何判断对象的数据类型
    这篇文章给大家分享的是有关JavaScript如何判断对象的数据类型的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。判断对象的数据类型使用 Object.prototype.toS...
    99+
    2022-10-19
  • 利用JS判断数据类型的四种方法
    目录前言1、typeof 2、instanceof 3、constructor 细节问题:4、toString 总结前言 Javascript 中的数据类型判断其实是一个JavaSc...
    99+
    2022-11-12
  • 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
  • python输入数据判断数据类型的方法是什么
    在Python中,可以使用`type()`函数来判断数据的类型。例如:```pythondata = input("请输入...
    99+
    2023-08-11
    python
  • JavaScript怎么判断数据类型?8 种方式分享
    JavaScript怎么判断数据类型?本篇文章给大家分享JS 判断数据类型的 8 种方式,有效帮助工作和面试,面试官看了微微一笑。1、typeof只能识别基础类型和引用类型注意:null、 NaN、 document.all 的判断cons...
    99+
    2023-05-14
    前端 JavaScript 面试
  • 第十八天- 类型判断 函数和方法判断 反
      # isinstance type issubclass 内置函数:# 1.issubclass() 这个内置函数可判断xxx类是否是yyy类型的子类# issubclass(子类,父类) 1 class Base: 2...
    99+
    2023-01-30
    函数 类型 方法
  • python中的数据类型怎么判断
    在Python中,可以使用type()函数来判断一个对象的数据类型。例如: x = 5 print(type(x)) # 输出: ...
    99+
    2023-10-25
    python
  • C#中怎么判断数据类型
    C#中怎么判断数据类型,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。通过这段代码,可以实现C#判断数据类型using System;  usi...
    99+
    2023-06-18
  • JavaScript中怎么判断typeof类型
    这篇文章将为大家详细讲解有关JavaScript中怎么判断typeof类型,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、对于原始类型,除了null,您还可以调用typeof显示正确的类型...
    99+
    2023-06-20
  • Golang断言判断值类型的实现方法
    Golang可以通过断言,判断值的类型 s:="hello world" i:=interface{}(s)//将数值转化为interface空接口类型 //需要注意的是,必须是...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作