JavaScript中的Number数字类型学习笔记
使用ieee754格式来表示整数和浮点数值。
浮点数值:该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。浮点数值需要内存空间是保存整数值的两倍。最高精度是17为小数,但在进行算术运算时其精度远远不如整数。
各种数值类型:十进制,八进制(在严格模式下无效),十六进制
八进制字面量的第一位必须是0,然后是八进制数字序列(0~7)。如果字面值中的数值超出了范围,那么前导0将被忽略,后面的数值将被当做十进制数来解析
070//56 079//79
十六进制字面值的前两位必须是0x,后跟十六进制数字(0~9及a~f)。其中字母a~f可大小也可小写
0xa//10
在进行算术计算时,所有以八进制和十六进制表示的数值最终都将被转换为十进制数值
数值范围:
如果某次计算中的结果中得到了一个超出javascript数值范围的值,那么这个值将被转换为特殊的infinity值,该值无法参与下一次的计算,因为infinity是无法参与计算的数值。如果这个数是正数则被转换为infinity(正无穷),如果这个数是负数则被转换为-infinity(负无穷)。
-10/0//-infinity 10/0//infinity
isinfinite()判断一个数是否有穷。
var result = number.max_value + number.max_value console.log(isfinity(result));//false
nan
console.log(nan === nan)//false 0/0//nan
isnan:接收一个参数,会尝试将这个值转换为数值,返回布尔值
console.log(isnan('10'));//false console.log(isnan('bb'));//true
数值转换
有3个函数可以把非数值转换为数值
number():使用于任何数值类型。
1.null
number(null)//0 undefined number(undefined)//nan
2.布尔值
number(true)//1 number(false)//0
3.字符串
number('bb')//nan,非数值字符 number('123')//123,数值字符 number('')//0,空串
4.对象
如果是对象,则调用对象的valueof()方法,然后依照上述的规则转换返回的值。如果转换的结果是nan,则调用对象的tostring()方法,然后再次依照前面的规则转换返回的字符串值。
5.parseint()/parsefloat():用于将字符串转换为数值。
parseint():从第一个字符串开始解析,直到解析到非数字字符,可接受两个参数,第二个参数代表不同的进制,默认转换为十进制数。
parseint('')//nan,空串 parseint(22.4)//22 parseint('12bu')//12 parseint('10',2)//2 parseint('10',8)//8 parsefloat():从第一个字符串开始解析,第一个小数点有效,忽略前导0,只能转换为十进制数值。 parsefloat('')//nan parsefloat('090')//90 parsefloat('2.3.4')//2.3
总结
- 不区分整数值和浮点数, javascript中所有数字均用64位浮点数值标识(ieee 754)。
- 就像java程序员所熟悉的double类型
- 取值范围在 ±1.7976931348623157 × 10 308 到 ±5 × 10 −324 之间
-
文字:
- 整数
- 十六进制 0x
- 八进制 0
- 浮点表示
- math类
- 方法
- pow // 求幂
- round //四舍五入
- ceil //向上取整
- floor //向下取整
- abs //求绝对值
- max //最大值
- min //最最小值
- sqrt
- log
- exp
- acos
- asin
- atan
- atan2
- random
- sin
- cos
- 常量
- pi
- e
- ln2
- ln10
- log2e
- log10e
- pi
- sqrt1_2
- sqrt2
- 方法
- 无限值
- 正无穷
- infinity //rw
- number.positive_infinity // r
- 1/0
- number.max_value + 1
- 负无穷
- number.negative_infinity //rw
- -intifinty //r
- -1/0
- -number.max_value - 1
- nan
- 不与任何值相等 包括它自己.
- nan //rw
- number.nan //r
- 0/0 //计算结果为nan
- zero
- number.min_value/2
- -number.min_value/2
- -1/infinity
- -0
- 正无穷
-
rounding-error
- 整数
var x = .3 - .2 var y = .2 - .1 x == y x == .1 // => false .3 -.2 不等于 ./ y == .1 // => true .2 - .1 等于 .1
推荐阅读
-
JavaScript中的Number数字类型学习笔记
-
Oracle中纯数字的varchar2类型和number类型自动转换
-
JavaScript中的Number数字类型学习笔记
-
重温JavaScript中的正则表达式 js学习笔记
-
荐 javascript从入门到跑路-----小文的js学习笔记(17)------动态属性、复制变量值、传递参数和检测类型
-
JavaScript高级程序设计(第四版)学习笔记(第二章 HTML中的JavaScript)
-
实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制
-
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式_基础知识
-
javascript学习笔记(十八) 获得页面中的元素代码_基础知识
-
【XML学习笔记】2:XML中的DTD(文档类型定义)