数据类型

一. 基本数据类型

1.数字(number)

常规数字和NaN(not a number)

NaN和任何值(包括自己都不相等 NaN != NaN)

isNaN检测一个值是否为非有效数字,如果不是有效数字返回true,反之为false。在使用isNaN进行检测时,首先会验证是否为数字类型, 如果不是则会首先用Number()方法,将值转换为数字类型再检测。

console.log( isNaN(12.5) )   => false

console.log( isNaN('AA') )   => true

Number方法在转换字符串时,只要字符串中包含任意一个非有效字符(第一个点除外)结果都是NaN(空字符串会变成0)

console.log(Number('12.5'))   => 12.5    

console.log( Number('12.5px') )   => NaN

console.log( Number('12.5.5') )   => NaN      

console.log( Number(' ') )   => 0

Number方法在转换布尔类型时,true为1,false为0

console.log(Number(true) )   => 1

console.log(Number(false) )   => 0

console.log(isNaN(false))   => false

Number方法在转换null和undefined时,null为0,undefined为NaN

console.log(Number(null) )   => 0

console.log(Number(undefined) )   => NaN

Number方法在转换引用数据类型为数字时,是先把它基于toString方法转换为字符串,然后在转换为数字

console.log({}.toString())   => [object Object]  =>  NaN

console.log([].toString())   => ''  => 0

console.log([12.5].toString())   => '12.5'  =>  12.5

console.log([12.5, 12.6].toString())   => '12.5, 12.6'  =>  NaN

其他类型转换为数字类型的几种方法

Number()  根据浏览器V8底层渲染规则进行转换(参考上文)

parseFloat() 额外提供的方法,先将值转为字符串在进行转换,可转换小数(从左到右依次转换,遇到非有效数字字符时停止,如果第一个字符不能转换为数字,parseFloat会直接返回 NaN。)

parseInt()  额外提供的方法,先将值转为字符串在进行转换,只可转换为整数(从左到右依次转换,遇到非有效数字字符时停止,如果第一个字符不能转换为数字,parseInt会返回 NaN。)

2.字符串(string)

所有单引号,双引号,反引号(模板字符串)包起来的·都是字符串

toString可以将其他类型转换为字符串

nul与undefined不能进行转换(原型上有此方法但是被浏览器禁止了)

普通对象则转换为[object Object](因为Object.prototype.toString方法不是用来转换为字符串的,而是检测数据类型的)

普通对象

3.布尔(boolean)

true/false

把其他类型转换为布尔值,只有0,null,nudefined,'',NaN为false,其余的都为true

转换方法:

1.Boolean()

Boolean(0)   =>   false

2.!取反(先转换为布尔再取反)!!取反再取反(直接转换为布尔型)

console.log(!0)   =>    true

console.log(!!0)   =>  false

3.条件判断    (条件只为一个值)

4.空对象指针(null)

null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。

5. 未定义(undefined)

当声明的变量还未被初始化时,变量的默认值为undefined。

属性名不存在时,输出undefined

没写return函数默认返回undefined

二.引用数据类型

1.对象类型 Object

①数组  []

②普通对象 {}

任何一个对象都是由0个或多个键值对组成,且键不能重复

③正则对象/^[\d]$/

④数学函数对象 Math

⑤日期对象 Date

……

2.函数数据类型 Function

数据类型转换参考

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容