30天快速掌握js02之简单数据类型Number知识点详解

此篇文章讲解目录:

1. Number类型

2. 进制

3. 浮点数

4. 数值范围

5. NaN

6. 数值的转换方式

Number()

parseInt()

parseFloat()

使用 + 和 - 操作符

Number类型

Number类型包含:正数、负数、零、小数、NaN

进制

十进制(最常用)

八进制(仅了解即可)

第一位必须是0

有效序列0-7(0后面跟着由0-7[包括0-7]之间的数字组成的序列)

如果超出范围

前导位0被忽略

后续数值以十进制计数

十六进制(仅了解即可)

前两位必须0x

有效序列

0-9

A-F

浮点数

小数点后至少一位数字

可以用科学计算法

小数点后带有6个0的浮点数

以e为底*10的正负N次幂

最高精度:17位小数

缺点

存在舍入误差(浮点数之间的运算也是非常不准确的,需要转成整数,然后再运算,运算后再转回对应的小数)

无法测试特定浮点数值,不要直接对浮点数进行运算;

在做有浮点数运算的情况下,先转成整数,然后得到结果后再转成小数;

数值范围

最小值 Number.MIN_VALUE

最大值 Number.MAX_VALUE:

超出范围

正无穷

Infinity

Number.POSITIVE_INFINTY

负无穷

-Infinity

Number.NEGATIVE_INFINITY

缺陷

无法参与下一次计算

检测方法,用isFinite

超出范围 false

合法范围true

NaN

含义

Not a Number

非数值,不是一个数值,但是NaN属于数值类型;

特点

任何涉及NaN的操作都将返回NaN

NaN与人和数值都不相等包括其自身

检测 isNaN

可以转换为数值,为false

不能转换为数值,为true

数值类型的转换方式

Number() 最霸道的转换方法,只要不是纯数值类型,全部不能成功转换

Boolean转换为数值的时候

true转为1;

flase转为0;

null转换为数值的时候 转换为0

undefined转换为数值的时候 转为NaN

string转换为数值的时候

如果只包含数字

转为十进制数

前导0被忽略

如果包含有效浮点格式

浮点数值

忽略前导0

包含有效十六进制格式;相同大小的十六进制整数

空字符串转为0;备注:""是空字符串 " "这个就不是空字符串了

其他格式字符串NaN

parseInt() 是Number的升级版本;有字符串出现也可能转换为数值;从前往后开始转,只要有一位可以转为数字都可以成功转换为数字;123sad可以转为123;

parseInt特性

忽略前导空格,直接找到第一个非空格字符

不是数字字符或负号,退出,解析不出数字

小数点不是有效数字

如果第一个是数字字符

解析所有后续字符

遇到非数字字符结束

parseInt参数

参数1、要解析的字符串

参数2、转换时所使用的基数;为了消除在使用parentInt函数时可能导致的格式,第二个参数可以指定要解析的基数,16就是十六进制;一般不传第二个参数

parseFloat() 属于parseInt的升级版本;可以转换为浮点数123.12dw可以转换为123.12;

从第一个字符开始解析

遇到无效浮点格式后结束

只有第一个小数点有效

忽略前导0

十六进制始终为0

没有小数点或小数点后全0;转换为整数

使用 "+" 和 "-" 操作符也可以转换(比如 "1.1"+2.1会显示成1.12.1,因为系统会认为是字符串拼接,但是可以使用 +"1.1"+2.1,则可以显示为3.2)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180429G1FQBU00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券