9种数据类型,数据类型区别及判断数据类型方法

20 篇文章 0 订阅
订阅专栏
17 篇文章 0 订阅
订阅专栏

基本数据类型:

String,Number,null,undefined,Boolean  (通常所说的五种原始数据类型),Symbol,BigInt (ES6新增)

引用类型:

object  [基本对象,Set,Map,new RegExp(),new Date(),...],  function   [函数,构造函数,new Error(),...]

以上就是通常所说的9种数据类型

Symbol:

  • 唯一性,用作对象的属性
  • vuex或redux中,派发
  • Symbol() == Symbol() false
  • 深层知识,可以自行查询Symbol上的方法

BigInt:

  • Number数据类型,最大能处理的是2^53,即Number.MAX_SAFE_INTEGER得到9007199254740991,超过这个值,计算就不准确了
  • 而bigint的出现就是来解决超过这个范围的值,9007199254740991n就是BigInt类型的值,如果要加1,就9007199254740991n + 1n可以得到正常计算结果90071992547409913n
  • BigInt(9007199254740991) == 9007199254740991n

 

两种数据类型的区别:存储位置不同

    原始数据类型直接存储在栈( stack )中的简单数据段,占据空间⼩、⼤⼩固定,属于被频 繁使⽤数据,所以放⼊栈中存储;

 

    引⽤数据类型存储在堆( heap )中的对象,占据空间⼤、⼤⼩不固定,如果存储在栈中,将会 影响程序运⾏的性能;引⽤数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。

当解释器寻找引⽤值时,会⾸先检索其 在栈中的地址,取得地址后从堆中获得实体。

 

判断数据类型的常用方法:typeof,instanceof,constructor,Object.prototype.toString.call

typeof:(通常用来判断基本数据类型,null除外)

  • 内部原理是通过判断计算机内部存储的值,而存在计算机中的值均是以二进制的数,当以000开头,便会视为是object类型,而null刚好是000,所以这也是为什么null是object类型
  • 判断引用类型数据不准确,像Date,regex都会视为object

instanceof:

  • 用来判断类(构造函数)的原型是否在实例的原型链上(__proto__属性IE不支持,可使用Object.getprototypeof(obj)方法获取原型)
  • 不准确,因为原型的继承关系,最终都会继承于Object.prototype,并且可以通过Object,create去更改原型
  • 不能判断基本数据类型 (1 instanceof Number false)

constructor:

  • 可以判断基本数据类型,但是一般不用这个方法去这样做
  • 不准确,constructor属性也是可以被更改

Object.prototype.toString.call:(强烈推荐使用此方法,建议封装使用)

  • 标准的检测数据类型的方法,Object.prototype.toString不是转化字符串,是返回当前实例所属类的信息

 

数据类型转换

Number():

- 将数据转化为number类型 (ps:字符串转数字类型可以使用小技巧, '123' * 1  ,  + '123'

  • Number('123ab')   NaN
  • Number(null)    0
  • Number(undefined)   NaN

parseInt(num, radix):

- 将数据转化为整型,接受第二个参数,表示将num以radix目标进制为基底,转化为10进制数

- 从左到右,当遇到第一个非数字止,返回非数字字符之前的数据

  • parseInt('abc')   NaN
  • parseInt('123abc')   123
  • parseInt('123.3a')   123
  • parseInt(null)   NaN
  • parseInt(undefined)   NaN

parseFloat():

- 将数据转化为浮点型

- 从左到右,当遇到第一个非数字(点不算)止,返回非数字字符之前的数据

  • parseInt('123.3a')   123.3

Boolean():

- 仅以下六种为false

- 0,false,null,undefined,‘’,NaN

String():

- 将数据转化为字符串

  • String(null)   'null'
  • String(undefined)   'undefined'

num.toString(radix):

- 与String不同的是,不能转化null,undefined,否则会报错

- 接受一个参数,与parseInt相反,将num以10进制为基底转化为radix进制数

 

# 特例

undefined > 0 false

undefined < 0 false

undefined == 0 false

null == undefined true

NaN == NaN false

typeof(typeof(a)) string

typeof(typeof(undefined)) string

 

教妹学Java:Java 的 8 数据类型
沉默王二
06-05 7928
数据类型 “二哥,上一节提到了 Java 变量的数据类型,是不是指定了类型就限定了变量的取值范围啊?”三妹吸了一口麦香可可奶茶后对我说。 “三妹,你不得了啊,长进很大嘛,都学会推理判断了。Java 是一静态类型的编程语言,这意味着所有变量必须在使用之前声明好,也就是必须得先指定变量的类型和名称。” Java 中的数据类型可分为 2 : 1)基本数据类型。 基本数据类型是 Java 语言操作数据的基础,包括 boolean、char、byte、short、int、long、float 和 double,共
JS数据类型分类及常用判断方法
01-21
判断数据类型方法有几 1.typeof 我相信typeof这个判断数据类型方法是大家平常用的比较多的,闲话不多说,直接上代码: console.log(typeof 1);//number console.log(typeof ‘hello’);//st
JS数据类型判断的几常用方法
11-19
JavaScript 中常见数据类型有Number、String、Boolean、Object、Array、Json、Function、Date、RegExp、Error、undefined、Null等十几ES6还有新增的数据类型有Symbol、Set、Map等。在实际应用中,我们经常需要判断数据类型,现在我归纳几方法,希望对大家有所帮助。 typeof 判断(最常用) typeof 是 JS 提供的一个运算符,专门用来检测一个变量的类型 。 typeof 有2使用方式:typeof(表达式)和typeof 变量名,第一是对表达式做运算,第二是对变量做运算。 function d
JavaScript判断数据类型有几方法区别介绍
10-14
主要介绍了JavaScript判断数据类型有几方法区别介绍,本文给大家分享多方法通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
3. Python基础:基本数据类型九种数据类型
简时刻的博客
04-01 3万+
目录 一、数字类型 1 整数类型 2 浮点数类型 3 复数类型 二、字节类型 1 字符串类型 2 字节串类型 三、组合类型 1 集合类型 2 元组类型 3 列表类型 4 字典类型 Python语言包括九种基本的数据类型,我们把它分为以下三类。 数字类型 整数、浮点数、复数 字节类型 字符串、字节串 组合类型 集合、元组、列表、字典 一、数字类型 1 整数类型 与数学中的整数含义相同,无取值范围 整数包括...
数据的类型:分类数据、顺序数据、数值型数据
热门推荐
麦地与诗人
03-23 4万+
categorical or nominal attribute:是只能归于某一类别的非数字型数据,它是对事物进行分类的结果,数据表现为类别,是用文字来描述的。例如: (1)人口按性别分为男、女两类; (2)企业按行业属性分为医药企业、家电企业、纺织品企业等; 为了便于统计处理,对于分类数据可以用数字代码来表示各个类别,比如: 用1表示“男性”,0表示“女性”; 用1表示“医药企业”,2表示“...
数据类型介绍
whaoe999的博客
01-17 1230
为什么需要数据类型 在计算机中,不同的数据所需占用的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型 简单来说,数据类型就是数据的类别型号 变量的数据类型 变量是用来存储值的所在处,它们有名字和数据类型,变量的数据类型决定了如何将代表这些值的位置存储到计算机内存中,JavaScript是一弱类型或者说动态语言,这意味着不用提前声明变量的类型,在程序运行过程中,类型会被自动确定 var agr=10;//这是一个数字型 var areYouO
Java数据类型以及区别
qingci_的博客
05-29 1856
Java数据类型以及区别一, 数据类型1.基础类型2.引用类型二,基本数据类型和引用数据类型区别1. 存储位置2. 传递方式个人如何选择使用 一, 数据类型 1.基础类型 JAVA中一共有八基本数据类型,分别是:byte、short、int、long、float、double、char、boolean。 1、byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。 2、short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。 3、int:32位,最大
JavaScript有哪些数据类型,它们有什么区别
m0_62118859的博客
04-22 2064
JavaScript共有八数据类型,分别是: Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt。 其中 Symbol 和 BigInt 是ES6 中新增的数据类型: Symbol 代表创建后独一无二且不可变的数据类型,它主要是为了解决可能出现的全局变量冲突的问题。 BigInt 是一数字类型的数据,它可以表示任意精度格式的整数,使用 BigInt 可以安全地存储和操作大整数,即使这个数已经超出了 Number 能够表示的安全
js 判断数据类型的几方法
11-28
本文将详细介绍并比较五常见的判断JavaScript数据类型方法:`typeof`、`instanceof`、`constructor`、`prototype`以及jQuery提供的`$.type()`/`jquery.type()`。 1. `typeof`: `typeof`操作符用于获取变量的...
Java中八基本数据类型及其区别、字符编码
weixin_51351637的博客
11-05 1980
基本数据类型又分成四类:布尔型:boolean字符型:char区别: 占用的空间大小不同byte占用1个字节、short占用2个字节、int占用4个字节、long占用8个字节float占用4个字节、double 占用8个字节boolean占用1个字节char占用2个字节
数据结构——数据类型区别与使用)
hu1262340436的博客
09-21 4666
数据结构——数据类型数据结构和数据类型一.区别数据结构:数据类型:二.数据结构的使用举例:三.数据类型的使用举例: 数据结构和数据类型 一.区别 数据结构: 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一或多特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。 常用的数据结构:数组(Array)、链表( Linked List)、散列表(Hash)、等 数据类型数据类型是代码中每个数据的属性,比如i
数据类型区别
良雨
02-25 219
004-数据类型区别 一、基本数据类型和引用数据类型的存储 1.1 浏览器想要执行代码 首先要从电脑中分配出一块内存,用于执行JS代码(栈内存=>Stack) 其次还需要分配一个主线程,用于自上而下执行代码 1.2 基本数据类型的存储过程 首先创建变量,把它存储到当前站内存中的变量存储空间中 其次是创建值,把它存储到当前栈内存中的值存储空间中(基本数据类型才是这样存储的,引用数据类型由于比较复杂,不适用于这存储方式) 把变量和值关联起来 1.3 引用数据类型的存储 创建变量,把其存储在当
常用的数据类型有哪些?简单数据类型与复杂数据类型之间的区别
前端泡面人
04-22 2387
常用的数据类型及其简单数据类型与复杂数据类型之间的区别
hive - 字符串string和bigint类型的坑
a123147abc的博客
06-10 3863
hive 的string与bigint的比较
数据类型和数据结构的区别
gao_zhennan的博客
07-27 8747
数据类型 数据类型反应了数据的取值范围以及对这类数据可以施加的运算。 二 数据结构 数据结构是指按一定的逻辑结构组成的一批数据,使用某存储结构将这批数据存储于计算机中,并在这些数据上定义了一个运算集合。 1. 逻辑结构 常见的数据的逻辑结构:线性结构、树形结构和图形结构。 2. 存储结构 常见的数据的存储结构:顺序存储、链式存储、索引存储和散列存储。 3. 运算集合 数据的运算包括:插入、删除、检索、输出、排序等。 三 两者的区别      &
数据挖掘中分类与预测的区别
weixin_30480075的博客
11-30 728
分类是指把数据样本映射到一个事先定义的类中的学习过程,即给定一组输入的属性向量及其对应的类,用基于归纳的学习算法得出分类。 第一步:建立训练集的分类器 第二步:首先评估分类器的预测准确率,再对新数据预测其类标号 b)预测可以涉及数据值预测和类标记预测,但预测通常指值预测。 c)两者的区别是,分类是用来预测数据对象的类标记,而预测则是估计某些空...
java九种基本数据类型
tianhouquan的专栏
09-06 1032
九种基本数据类型的大小,以及他们的封装类。 java提供了一组基本数据类型,包括 boolean, byte, char, short,  int, long, float, double, void. 同时,java也提供了这些类型的封装类,分别为 Boolean, Byte, Character, Short, Integer, Long, Float, Double, Void 类...
九种基本数据类型,以及他们的封装类
rabbit_in_android的博客
11-12 1万+
基本类型 大小(字节) 默认值 封装类 byte 1 (byte)0 Byte short 2 (short)0 Short int 4 0 Integer long 8 0L Long float 4 0.0f Float double 8 0.0d Double boolean -
判断数据类型方法 区别
最新发布
05-27
常见的判断数据类型方法有以下几: 1. typeof:可以判断数据类型为基本数据类型(如number、string、undefined、boolean、symbol)和函数类型,但对于其他数据类型(如对象、数组、null)则会返回object。 2. instanceof:可以判断一个实例是否属于某个构造函数创建的对象,但无法判断null和undefined的类型。 3. Object.prototype.toString.call():可以获取一个对象的内部属性[[Class]],从而判断数据类型。这方法可以精准地判断数据类型,包括基本数据类型、对象、数组、null和undefined。 4. Array.isArray():用于判断一个值是否为数组类型,但无法判断其他数据类型。 它们的区别主要在于判断精准度和应用场景。其中,typeof适用于判断基本数据类型和函数类型,instanceof适用于判断对象是否由某个构造函数创建,Object.prototype.toString.call()适用于精确判断数据类型,Array.isArray()则适用于判断是否为数组类型。在实际开发中,根据不同的需求选择不同的判断方法更为合适。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 9种数据类型,数据类型区别及判断数据类型方法 4709
  • vue项目中前端鉴权实现(菜单权限,按钮权限) 4185
  • 一文教会你前端开发如何使用chatGPT提高效率 1948
  • vue3 Element Plus select 同时使用filterable,multiple交互问题 1334
  • React Hooks 分享 964

分类专栏

  • 学习 20篇
  • react 1篇
  • 笔记 2篇
  • JS 17篇
  • vue 1篇

最新评论

  • vue项目中前端鉴权实现(菜单权限,按钮权限)

    Alice_czy: 应该是脚手架自动生成的,没有改相关配置,这个项目有点久了表情包

  • vue项目中前端鉴权实现(菜单权限,按钮权限)

    哈希麻辣: 大佬,我有个疑问,你的router.js是如何配置的

  • React Hooks 分享

    i白: 博主写的全是干货,太用心啦,必须支持博主!期待博主也来我这边指点一二,留个好友位呗~(*^▽^*)

  • React Hooks 分享

    天蝎座的程序媛: 感谢博主详细的分享,期待更多好文

  • 事件循环机制(Event Loop)

    Alice_czy: 仔细思考了一下,确实可能会存在歧义,已修改,同步代码应该指的是 script 主体代码 你是不是把同步代码和同步任务弄混淆了,同步代码确实是属于宏任务的

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • vue3 Element Plus select 同时使用filterable,multiple交互问题
  • 一文教会你前端开发如何使用chatGPT提高效率
  • React Hooks 分享
2023年2篇
2022年1篇
2021年20篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码沙井网站改版罗湖企业网站设计坪山阿里店铺运营盐田网络营销坪地外贸网站设计龙华网站搭建惠州网站seo优化丹竹头网站推广系统光明网站建设设计东莞外贸网站设计丹竹头标王沙井建站坪地设计公司网站塘坑建网站横岗关键词排名包年推广松岗百度标王爱联百搜标王大鹏营销网站福永推广网站坑梓关键词按天计费木棉湾SEO按天收费坪地seo南澳网站优化推广福永网站制作南山企业网站改版大运企业网站改版福永建设网站布吉百搜词包横岗seo福永设计网站歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化