iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >js中基于数据类型检测的方式有哪些
  • 403
分享到

js中基于数据类型检测的方式有哪些

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

这篇文章主要为大家展示了“js中基于数据类型检测的方式有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js中基于数据类型检测的方式有哪些”这篇文章吧。1、t

这篇文章主要为大家展示了“js中基于数据类型检测的方式有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js中基于数据类型检测的方式有哪些”这篇文章吧。

1、typeof 用来检测数据类型的运算符 

console.log(typeof 12)//Number

使用typeof检测数据类型,首先返回的都是字符串 ,其次字符串中包含了对应的数据类型

例如:"number"、"string"、"boolean"、"undefined"、"function"、"object"

console.log(typeof typeof function(){}) //string

局限性:

typeof null -> "object"

不能具体的细分是数组还是正则,还是对象中其他的值,因为使用typeof检测数据类型,对于对象数据类型中的值,最后返回的结果都是"object"

2、instanceof 检测某一个实例是否属于某个类

var obj = [12,23];
    console.log(obj instanceof Array);

局限性:

对于基本数据类型来说,字面量方式创建出来的结果和实例方式创建出来的结果是有一定的区别的。从严格意义上讲,只有实例创建出来的结果才是标准的对象数据类型值,也是标准的Number这个类的一个实例;对于字面量方式创建出来的结果是基本的数据类型值,不是严谨的实例,但是由于JS的松散特点,导致了可以使用Number.prototype上的方法

1)、不能用来检测和处理字面量方式创建出来的基本数据类型值

console.log(1 instanceof Number);//false
console.log(new Number(1) instanceof Number)//true

2)、instanceof的特性:只要在当前实例的原型链上,我们用其检测的结果都为true

var ary = [];
    console.log(ary instanceof Array);//true
    console.log(ary instanceof Object);//true

    function fn(){

    }
    console.log(fn instanceof Function);//true
    console.log(fn instanceof Object);//true

3、constructor 构造函数 作用和instanceof非常的相似  constructor可以处理基本数据类型的检测

constructor检测Object和instanceof不一样 一般情况下是检测不了的

var obj = [];
    console.log(obj.constructor === Array)//true

    var num = 1;
    console.log(num.constructor === Number)//true

局限性:我们可以把类的原型进行重写,在重写的过程中很有可能出现把之前的constructor给覆盖掉了,这样检测出来的结果就不准确了。

对于特殊的数据类型null和undefined,他们所属的类是Null和Undefined,但是浏览器把这两个类保护起来了,不允许我们在外面访问使用

4、Object.prototype.toString.call() 最准确最常用的方式 各种类型的都可以检测(基本和引用)

首先获取Object原型上的toString方法,让方法执行,并且改变方法中的this关键字的指向

toString的理解:

表面上看应该是转化成字符串,但是某些toString方法不仅仅是转换为字符串

对于Number、String、Boolean、Array、RegExp、Date、Function原型上的toString方法都是把当前的数据类型转化为字符串的类型(他们的作用仅仅是用来转换为字符串的)

Object.prototype.toString()并不是用来转化为字符串的,他的作用是返回当前方法执行主体(方法中的this)所属类的详细信息。  

({name:"李四"}).toString() //[object object]
    Math.toString()//[object Math]
({name:"李四"}).toString() //[object object]
    Math.toString()//[object Math]

    var obj = {name:"张三"};
    console.log(obj.toString())//toString中的this是obj,返回的是obj所属的类的信息。[object Object] 第一个object代表当前实例是对象数据类型的(这个是固定的),第二个Object代表的是obj所属的类是Object

console.log((1).toString()) // "1" Number.prototype.toString转化为字符串

console.log((128).toString(2/8/10)) 把数字转化为2进制、8进制、10进制

所以上面的方法的检测如下 

var ary = [];
    console.log(Object.prototype.toString.call(ary))//[object Array]

以上是“js中基于数据类型检测的方式有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网node.js频道!

--结束END--

本文标题: js中基于数据类型检测的方式有哪些

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

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

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

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

下载Word文档
猜你喜欢
  • js中基于数据类型检测的方式有哪些
    这篇文章主要为大家展示了“js中基于数据类型检测的方式有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js中基于数据类型检测的方式有哪些”这篇文章吧。1、t...
    99+
    2022-10-19
  • 关于JS数据类型检测的多种方式总结
    目录背景 判断数据类型的手段有哪些? 1. 用typeof判断基础数据类型: 2. 用instanceof判断对象数据类型3. 用contructor属性 4. toString方法...
    99+
    2022-11-12
  • JS数据类型的方法有哪些
    本篇内容介绍了“JS数据类型的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在 ECMAScript 规范中,共定义了 7 种数据...
    99+
    2023-06-27
  • JavaScript中检测数据类型的四种方法
    目录1. typeof2. instanceof3. constructor(构造函数)4. Object.prototype.toString.call()前言:在介绍检测数据类型...
    99+
    2022-11-12
  • 基于Jquery中Ajax type的类型有哪些
    小编给大家分享一下基于Jquery中Ajax type的类型有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Ajax typ...
    99+
    2022-10-19
  • Redis中的基本数据类型有哪些
    这篇文章主要讲解了“Redis中的基本数据类型有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis中的基本数据类型有哪些”吧!Redis数据结构简...
    99+
    2022-10-19
  • JavaScript中的基本数据类型有哪些
    小编给大家分享一下JavaScript中的基本数据类型有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、区分大小写在JavaScript中,所有的一切(变量、函数和操作符)都区分大小...
    99+
    2022-10-19
  • java中的基本数据类型有哪些
    这篇文章主要介绍java中的基本数据类型有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!基本数据类型1.整数类型:byte、short、int、long注意:1.java各整数类...
    99+
    2022-10-19
  • java中有哪些基本数据类型
    java的基本数据类型:1.字节型byte;2.短整型short;3.整型int;4.长整型long;5.单精度浮点型float;6.双精度浮点型double;7.布尔型boolean;8.字符型char;java中基本数据类型有:字节型b...
    99+
    2022-10-07
  • JS数据类型的知识点有哪些
    这篇文章主要介绍“JS数据类型的知识点有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JS数据类型的知识点有哪些”文章能帮助大家解决问题。JavaScript中有哪些数据类型?计算机世界中定义的...
    99+
    2023-06-27
  • SQL基本的数据类型有哪些
    SQL基本的数据类型有以下几种:1. 整数类型:包括INT、SMALLINT、TINYINT、BIGINT等。2. 浮点类型:包括F...
    99+
    2023-10-10
    SQL
  • mysql有哪些基本的数据类型
    本文主要给大家介绍mysql有哪些基本的数据类型,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下mysql有哪些基本的数据类型吧。数值类型整数类型ti...
    99+
    2022-10-18
  • ecmascript的基本数据类型有哪些
    这篇文章主要为大家展示了“ecmascript的基本数据类型有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ecmascript的基本数据类型有哪些”这篇文...
    99+
    2022-10-19
  • Rust的基本数据类型有哪些
    这篇文章主要讲解了“Rust的基本数据类型有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Rust的基本数据类型有哪些”吧!Rust 和 Go 一样,都是静态类型语言,这表示每个变量的类...
    99+
    2023-06-15
  • Python中的基本数据类型有哪些呢
    今天就跟大家聊聊有关Python中的基本数据类型有哪些呢,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。基本数字类型首先我们开始认识一下基本的数字类型吧:整数类型浮点数类型复数类型整数...
    99+
    2023-06-03
  • JavaScript判断数据类型的方式有哪些
    这篇文章主要介绍“JavaScript判断数据类型的方式有哪些”,在日常操作中,相信很多人在JavaScript判断数据类型的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript判断数...
    99+
    2023-07-05
  • js中各种数据类型检测和判定的实战示例
    目录介绍准备目标测试用例代码使用总结 介绍 在前端开发中,js 有各种各样的数据类型,数据类型检测是每个开发者都必须掌握基础知识。数据类型检测的方法也有很多种,本题将封装一...
    99+
    2022-11-13
    js数据类型检测和判定方法 js检测数据类型的方法 js检验数据类型
  • php数据类型转换方式有哪些
    在PHP中,可以使用以下方式进行数据类型转换:1. 强制类型转换:使用类型转换运算符(例如 (int)、(float)、(strin...
    99+
    2023-05-13
    php数据类型转换 php
  • Python数据类型转换方式有哪些
    这篇文章主要介绍“Python数据类型转换方式有哪些”,在日常操作中,相信很多人在Python数据类型转换方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python数据类型转换方式有哪些”的疑惑有所...
    99+
    2023-06-25
  • 不属于javascript的数据类型有哪些
    这篇文章给大家分享的是有关不属于javascript的数据类型有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作