1. [b]ECMAScript 的 Boolean 值、数字和字符串的原始值都是为对象,这意味着实际上它们有属性和方法。[/b]
它们都有 toString() 方法。Boolean 类型只输出 “true” 或 “false”,由变量值确定。Number 的 toString() 方法有点特殊,它有两种模式,即默认模式和基模式。采用默认模式,toString() 方法只是用相应的字符串输出数字值(无论是整数、浮点数还是科学计数法),实质是以十作为基数输出。
2. 数字转换
ECMAScript 提供了两种方法把非数字的原始类型转换成数字,即 parseInt() 和 parseFloat()。
[b]注意,这两个方法只对 String 类型有用,其它类型都是返回 NaN。[/b]
[b]parseInt() 方法执行过程:[/b]parseInt() 会仔细检查该字符串。
首先查看位置 0 处的字符,判断它是否是个有效数字;如果不是,刚方法将返回 NaN,不再继续执行其它操作。
如果该字符时有效数字,该方法将查看位置 1 处的字符,进行同样的测试。
该过程持续到发现非有效字符为止,[b]此时 parseInt() 把该字符之前的字符串转换成数字[/b]。
[b]注意,字符串中包含的数字字面量会被正确地转换成数字,所以 “0XA” 会被正确地转换成数字 10。[/b]示例:
[img]http://dl.iteye.com/upload/picture/pic/49935/578986bd-0cf2-32ff-9c1d-08838ce6097d.png[/img]
parseInt() 还有基模式,可以把二进制、八进制和十六进制以及其他任何进制的字符串转换成整数,其中基有 parseInt() 的第二个参数指定。
注意,如果不指定基,则根据字符串的字面量来解析,如 parseInt("070") 返回的是 56 而不是 70。不管用那个基数作解析转换,parseInt() 最终返回给用户看到的十进制的数值。如 parseInt("10",16) 返回的是是进制的 16 而不是十六进制的 "0A"。
[b]parseFloat() 的执行过程[/b]和 praseInt() 相处,不同之处在于它把碰到的第一个小数点当做是有效地,其后的非数字字符都作为无效处理,[b]包括的小数点[/b]。
parseFloat() 与 parseInt() 的另一个不同之处是字符串必须是十进制的浮点数,不能是二进制、八进制和十六进制或其它任何进制。如 parseFloat("070") 将返回 70 而不是 56, parseFloat("0xa") 返回 NaN而不是 10,即 parseFloat() 没有基模式。示例:
[img]http://dl.iteye.com/upload/picture/pic/49579/181f5893-3699-3598-b791-f6a32a2a5774.png[/img]
它们都有 toString() 方法。Boolean 类型只输出 “true” 或 “false”,由变量值确定。Number 的 toString() 方法有点特殊,它有两种模式,即默认模式和基模式。采用默认模式,toString() 方法只是用相应的字符串输出数字值(无论是整数、浮点数还是科学计数法),实质是以十作为基数输出。
2. 数字转换
ECMAScript 提供了两种方法把非数字的原始类型转换成数字,即 parseInt() 和 parseFloat()。
[b]注意,这两个方法只对 String 类型有用,其它类型都是返回 NaN。[/b]
[b]parseInt() 方法执行过程:[/b]parseInt() 会仔细检查该字符串。
首先查看位置 0 处的字符,判断它是否是个有效数字;如果不是,刚方法将返回 NaN,不再继续执行其它操作。
如果该字符时有效数字,该方法将查看位置 1 处的字符,进行同样的测试。
该过程持续到发现非有效字符为止,[b]此时 parseInt() 把该字符之前的字符串转换成数字[/b]。
[b]注意,字符串中包含的数字字面量会被正确地转换成数字,所以 “0XA” 会被正确地转换成数字 10。[/b]示例:
[img]http://dl.iteye.com/upload/picture/pic/49935/578986bd-0cf2-32ff-9c1d-08838ce6097d.png[/img]
parseInt() 还有基模式,可以把二进制、八进制和十六进制以及其他任何进制的字符串转换成整数,其中基有 parseInt() 的第二个参数指定。
注意,如果不指定基,则根据字符串的字面量来解析,如 parseInt("070") 返回的是 56 而不是 70。不管用那个基数作解析转换,parseInt() 最终返回给用户看到的十进制的数值。如 parseInt("10",16) 返回的是是进制的 16 而不是十六进制的 "0A"。
[b]parseFloat() 的执行过程[/b]和 praseInt() 相处,不同之处在于它把碰到的第一个小数点当做是有效地,其后的非数字字符都作为无效处理,[b]包括的小数点[/b]。
parseFloat() 与 parseInt() 的另一个不同之处是字符串必须是十进制的浮点数,不能是二进制、八进制和十六进制或其它任何进制。如 parseFloat("070") 将返回 70 而不是 56, parseFloat("0xa") 返回 NaN而不是 10,即 parseFloat() 没有基模式。示例:
[img]http://dl.iteye.com/upload/picture/pic/49579/181f5893-3699-3598-b791-f6a32a2a5774.png[/img]