[javascript|基本概念|Number]学习笔记

Number类型的值:整数/浮点数值

 

整数

十进制  e.g.: var intNum = 50;

八上制  (严格模式下无效,解析错误)字面值首号必须是0,之后的数字序列为0~7
 e.g.: var intNum = 070; //解析为十进制56
(如果字面值数值高于了限定,前导0将被忽视,后面的数值将让看成十进制数值解析
e.g.: var intNum = 078; //无效的八进制数字,解析为十进制78)

十六迈入制
 字面值的先头片各类必须是0x(或0X),之后的多寡列为0~7或A~F(可死写,亦可小写)
 e.g.:var intNum = 0xA; //解析为十进制10

算计算时,所有以八进制和十六进制表示的数值最终都见面变成为十进制数值计算

 

浮点数

数值中必须带有一个不怎么数点,且有些数点后面要至少发生一个数字 e.g.: var
floatNum = 1.5;(小数点前面可无整数,e.g.: var floatNum = .5;
//有效,解析为0.5,但非引进)

设略微数点后面没有数字,将让分析为整数值 e.g.: var floatNum = 5.;
//解析为整数5
(因为浮点数保存得之内存空间是整数保存的有限加倍,ECMAScript会不失时机地用浮点数值转为整数值)

科学计数法
 极大或极端小之数值可附加e(或E)来表示,等同于e前面的数值乘以10之指数破幂

 

数值范围

最大值:Number.MAX_VALUE 1.7976931348623157e+308

最小值:Number.MIN_VALUE 5e-324

胜出最值,自动转换成为Infinity/-Infinity  无穷值无法介入计算
(Number.POSITIVE_INFINITY/Number.NEGATIVE_INFINITY也分别保存在Infinity/-Infinity)

看清是否是发生穷值  isFinite(arg)
 arg可以啊外类型的数额,非Number数据将隐式转换成Number数据

 

NaN

非数值(Not a Number)保存一个本来要回来数值可无回来数值的数量
如任何数值除以0,返回NaN

旁和NaN的操作都见面返回NaN

NaN与其余价值都不思量当,包括NaN本身

认清是否未NaN  isNaN(arg)
 arg可以啊任何项目的数据,非Number数据将隐式转换成Number数据

 

数值转换

Number()/parseInt()/parseFloat()

Number()可用于其他数据类型转换成为数值  
 parseInt()/parseFloat()一般用来字符串转换成数值

Number()转换规则:               

Boolean    true–>1    false–>0

Number    返回自己

null          0

undefined NaN

String       a/只含有数字(包括前带刚要标志)–>十进制数值
(前导为0的忽略0,不见面转换成为八进制/前导为0x的,转换为十六进制大小ECMAScript的十进制)

                b/只含有浮点–>对应的浮点数值(前导0被忽视)

                c/只含有空字符串–>0

                d/包含其他字符–>NaN

parseInt()转换规则:(正以Number()处理字符串转换过于复杂,一般字符串转换用parseInt()比较好)

最主要关押其是否符合数值模式

不经意字符串前面的空格,直到找到第一只非空格字符

a/第一个字符不是数字要碰巧负号–>NaN  e.g.:parseInt(“abcd”)–>NaN
 e.g.:parseInt(“”)–>NaN(区别Number(“”)–>0)

b/第一单字符是数字字符,顺序解析第二只,直到解析了所有字符或遇不数字字符结束–>已成解析为数字的数字字面量 e.g.:parseInt(“1234blue”)–>1234

c/能够解析Number类型的整数的各种格式:十前行制/八进制/十六进制(parseInt()可以传递第二独参数:多少进制;十六进制可以免带来前面的0x,推荐传递带点儿单参数的道) e.g.:parseInt(“0xA”)–>10
   parseInt(“A”, 16)–>10

 parseFloat()转换规则:

类似parseInt()

字符中出半点只以上之略微数点时,第一独稍数点有效,第二个下都无济于事,且后面的字符被忽视
 e.g.:parseFloat(“11.22.33”)–>11.22

一味分析十迈入制格式字符串,没有第二个参数指定转换方式

十六上前制格式字符串–>0 e.g.:parseFloat(“0xA”)–>0

从未小数点的整治数字符串–>整数 e.g.:parseFloat(“1234blue”)–>1234

科学计数法 e.g.:parseFloat(“3.14e2”)–>314