2026世界杯_2004年世界杯 - 1606811.com

首页 > 开幕式世界杯 > 9种数据类型,数据类型区别及判断数据类型方法

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

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

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

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

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

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

用来判断类(构造函数)的原型是否在实例的原型链上(__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') NaNNumber(null) 0Number(undefined) NaNparseInt(num, radix):

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

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

parseInt('abc') NaNparseInt('123abc') 123parseInt('123.3a') 123parseInt(null) NaNparseInt(undefined) NaNparseFloat():

- 将数据转化为浮点型

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

parseInt('123.3a') 123.3Boolean():

- 仅以下六种为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




扣子专业版创建团队管理员账号多账号子账号
绝望教室