这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
对数字类型支持得不够强大是很多人吐槽 JavaScript 的原因, anyway... 这里整理了 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
总结
- var x = .3 - .2
- var y = .2 - .1
- x == y
- x == .1 // => false .3 -.2 不等于 ./
- y == .1 // => true .2 - .1 等于 .1
来源: http://www.phperz.com/article/17/0413/265418.html