js 字符串与数字类型互换的方法

JavaScript024

js 字符串与数字类型互换的方法,第1张

一、字符串转换为数字: 在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b.value,因为他们都是字符串形式的.所以在比较前需要将它们各自的值转换为Number类型。主要的方法有三种:转换函数、强制类型转换、利用js变量弱类型转换 。 1.转换函数 parseInt() 和 parseFloat()parseInt(str): 将字符串类型转换为 整型 ,当函数的参数不是字符串时,函数返回NaN(Not a Number) parseFloat(str): 将字符串类型转换为 浮点型 ,当函数的参数不是字符串时,函数返回NaN(Not a Number) 注1:凡是一切表示数的形式的字符串都可以通过上面的两个函数转化为数字,例如: 普通的数字 : parseInt('123') // 123  浮点数 :  parseInt('123.45') // 123 十六进制数:parseInt('0x11') // 17 科学计数法: parseInt('3e12') // 3  parseInt('13e12') // 13 注2:parseInt()函数支持十六进制形式的字符串转换为整型,但是 parseFloat()函数不支持十六进制形式的字符串转换为浮点型,但是会返回数字0.原因是parseFloat()函数将参数为十六进制的字符串 "0x11"的第一个字符零(0)看做数字,将其他的忽略。 2.强制类型转换 可使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。ECMAScript中可用的3种强制类型转换如下:Boolean(value)——把给定的值转换成Boolean型; Number(value)——把给定的值转换成数字(可以是整数或浮点数); String(value)——把给定的值转换成字符串。用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。 当要转换的值是至少有一个字符的字符串、非0数字或对象时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。3. 利用js变量弱类型转换二、数字转换为字符串 强制类型转换、利用js变量弱类型转换 1.强制类型转换: String(value)——把给定的值转换成字符串。2.利用js变量弱类型转换:数字+字符串 // 123+"456"------>"123456"

方法主要有三种

转换函数、强制类型转换、利用js变量弱类型转换。

用函数parseInt()和parseFloat()两个转换,前者把值转换成整数,后者把值转换成浮点数。只有对String类型的数字字符串调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)

parseInt("1234blue") //结果 1234

parseInt("0xA") //结果 10

parseInt("22.5") //结果 22

parseInt("blue") //结果 NaN

parseFloat("1234blue") //结果 1234.0

parseFloat("0xA") //结果 NaN

parseFloat("22.5") //结果 22.5

parseFloat("22.34.5") //结果 22.34

2. 强制类型转换,Number(value)——把给定的值转换成数字(可以是整数或浮点数);

Number(false) //结果 0

Number(true) //结果 1

Number(undefined) //结果 NaN

Number(null) //结果 0

Number( "5.5 ") //结果 5.5

Number( "56 ") //结果 56

Number( "5.6.7 ") //结果 NaN

Number(new Object()) //结果 NaN

Number(100) //结果 100

3. 利用js变量弱类型转换

var str= '012.345 '

var x = str-0

x = x*1 //x为数字类型

进行了算术运算,实现了字符串到数字的类型转换,不过这个方法不推荐

示例如下:

parseInt("1234blue")//returns 1234

parseInt("0xA")//returns 10

parseInt("22.5")//returns 22

parseInt("blue")//returns NaN

parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的,示例如下:

parseInt("AF", 16)//returns 175

parseInt("10", 2)//returns 2

parseInt("10", 8)//returns 8

parseInt("10", 10)//returns 10

如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地得到八进制的值。例如:

parseInt("010")//returns 8

parseInt("010", 8)//returns 8

parseInt("010", 10)//returns 10

parseFloat()方法与parseInt()方法的处理方式相似。

使用parseFloat()方法的另一不同之处在于,字符串必须以十进制形式表示浮点数,parseFloat()没有基模式。

下面是使用parseFloat()方法的示例:

parseFloat("1234blue")//returns 1234.0

parseFloat("0xA")//returns NaN

parseFloat("22.5")//returns 22.5

parseFloat("22.34.5")//returns 22.34

parseFloat("0908")//returns 908

parseFloat("blue")//returns NaN