javascript 字符串转换数字-JS字符串转换次数

2024-04-24 0 7,406 百度已收录

我把它转过来以便我可以亲眼看到。

1、转换功能:

Node.js 提供了两个转换函数,parseInt() 和 parseFloat()。 前者将值转换为整数,后者将值转换为浮点数。 只有在String类型调用该方法时,这两个函数才能正确运行; 对于其他类型,返回 NaN(非数字)。

parseInt() 和 parseFloat() 在确定字符串是否为数值之前都会仔细解析该字符串。

parseInt()方法首先检查位置0处的字符,判断是否为有效数字; 如果不是,该方法将返回 NaN 并且不会执行进一步的操作。 但如果该字符是有效数字,则此方法将查看位置 1 处的字符并执行相同的测试。 这个过程会一直持续下去,直到找到不是有效数字的字符,此时parseInt()会将字符之前的字符串转换为数字。

例如,如果要将字符串“1234blue”转换为整数,parseInt()将返回1234,因为它在测量字符b时会停止测量过程。

字符串中包含的数字文字会正确转换为数字,因此字符串“0xA”会正确转换为数字 10。

但是,字符串“22.5”将被转换为 22,因为小数点对于整数来说是无效字符。

一些示例如下:

Js代码

 1. parseInt("1234blue");   //returns   1234   
   2. parseInt("0xA");   //returns   10   
   3. parseInt("22.5");   //returns   22   
   4. parseInt("blue");   //returns   NaN  
parseInt("1234blue");   //returns   1234 
parseInt("0xA");   //returns   10 
parseInt("22.5");   //returns   22 
parseInt("blue");   //returns   NaN

parseInt()方法还具有基本模式,可以将二进制、八进制、十六进制或任何其他二进制补码字符串转换为整数。

基数由parseInt()方法的第二个参数指定,因此要解析十六进制值,需要调用parseInt()方法,如下所示:

Js代码


   1. parseInt("AF",   16);   //returns   175   
parseInt("AF",   16);   //returns   175 

当然,对于二进制、八进制甚至十进制(默认模式)javascript 字符串转换数字,您可以像这样调用 parseInt() 方法:

Js代码


   1. parseInt("10",   2);   //returns   2   
   2. parseInt("10",   8);   //returns   8   
   3. parseInt("10",   10);   //returns   10   
parseInt("10",   2);   //returns   2 
parseInt("10",   8);   //returns   8 
parseInt("10",   10);   //returns   10 

如果十进制数包含前导 0,最好使用基数 10,这样您就不会意外得到八进制值。 例如:

Js代码


   1. parseInt("010");   //returns   8   
   2. parseInt("010",   8);   //returns   8   
   3. parseInt("010",   10);   //returns   10   
parseInt("010");   //returns   8 
parseInt("010",   8);   //returns   8 
parseInt("010",   10);   //returns   10 

在此代码中,两行代码都将字符串“010”解析为数字。 第一行代码将此字符串视为八进制值,并以与第二行代码(声明基数 8)相同的形式解析它。 最后一行代码声明基数为 10,因此 iNum3 最终等于 10。

parseFloat() 方法与 parseInt() 方法类似。 它从位置 0 开始查找每个字符,直到找到第一个无效字符,然后将该字符之前的字符串转换为数字。

但是,对于此方法,第一个小数点是有效字符。 如果有两个小数点,第二个小数点将被视为无效javascript 字符串转换数字,parseFloat()方法会将这个小数点之前的字符串转换为数字。 这意味着字符串“22.34.5”将被解析为22.34。

使用 parseFloat() 方法的另一个区别是字符串必须以十进制表示法表示浮点数,而不是八进制或十六进制。

此方法忽略前导零,因此八进制数 0908 将被解释为 908。对于十六进制数 0xA,此方法返回 NaN,因为 x 不是浮点数中的有效字符。

另外,parseFloat()没有基本模式。

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

Js代码

javascript 字符串转换数字-JS字符串转换次数

   1. parseFloat("1234blue");   //returns   1234.0   
   2. parseFloat("0xA");   //returns   NaN   
   3. parseFloat("22.5");   //returns   22.5   
   4. parseFloat("22.34.5");   //returns   22.34   
   5. parseFloat("0908");   //returns   908   
   6. parseFloat("blue");   //returns   NaN  
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

2.强制类型转换

您还可以使用类型转换来处理值类型的转换。 使用强制转换来访问特定值,即使它是其他类型。

ECMAScript 中可用的 3 种类型转换如下:

Boolean(value) - 将给定值转换为布尔类型;

Number(value) - 将给定值转换为数字(可以是整数或浮点数);

String(value) - 将给定值转换为字符串。

使用这三个函数之一转换值会创建一个新值,该新值保存从原始值直接转换而来的值。 这可能会导致意想不到的后果。

当要转换的值是至少包含一个字符的字符串、非零数字或对象(在下一节中讨论)时,Boolean() 函数返回 true。 如果值为空字符串、数字0、未定义或null,则返回false。

您可以使用以下代码片段来测试布尔类型强制。

Js代码


   1. Boolean("");   //false   –   empty   string   
   2. Boolean("hi");   //true   –   non-empty   string   
   3. Boolean(100);   //true   –   non-zero   number   
   4. Boolean(null);   //false   -   null   
   5. Boolean(0);   //false   -   zero   
   6. Boolean(new   Object());   //true   –   object  
Boolean("");   //false   –   empty   string 
Boolean("hi");   //true   –   non-empty   string 
Boolean(100);   //true   –   non-zero   number 
Boolean(null);   //false   -   null 
Boolean(0);   //false   -   zero 
Boolean(new   Object());   //true   –   object

Number() 的强制转换与 parseInt() 和 parseFloat() 方法类似,只不过它转换整个值而不是部分值。

请记住,parseInt() 和 parseFloat() 方法仅转换第一个无效字符之前的字符串,因此“4.5.6”将转换为“4.5”。

使用 Number() 进行转换,“4.5.6”将返回 NaN,因为整个字符串值无法转换为数字。

如果字符串值可以完全转换,Number() 将确定是否调用 parseInt() 方法或 parseFloat() 方法。

下表说明了对不同值调用 Number() 方法时会发生的情况:

使用结果

Js代码


   1. Number(false)   0   
   2. Number(true)   1   
   3. Number(undefined)   NaN   
   4. Number(null)   0   
   5. Number( "5.5 ")   5.5   
   6. Number( "56 ")   56   
   7. Number( "5.6.7 ")   NaN   
   8. Number(new   Object())   NaN   
   9. Number(100)   100    
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  
 

最后一个强制方法 String() 是最简单的,因为它可以将任何值转换为字符串。

要执行这些转换,只需对作为参数传入的值调用 toString() 方法,该方法将 1 转换为“1”,将 true 转换为“true”,将 false 转换为“false”,依此类推。 。

转换为字符串和调用 toString() 方法之间的唯一区别是转换 null 或未定义的值会生成字符串而不会引发错误:

Js代码

   1. var   s1   =   String(null);   //"null"   
   2. var   oNull   =   null;   
   3. var   s2   =   oNull.toString();   //won’t   work,   causes   an   error  
var   s1   =   String(null);   //"null" 
var   oNull   =   null; 
var   s2   =   oNull.toString();   //won’t   work,   causes   an   error
 

3.使用js变量的弱类型转换

举个小反例,一看就明白了。

Js代码


   1.    
   2.     var   str= '012.345 ';   
   3.     var   x   =   str-0;   
   4.     x   =   x*1;  
   5.   
 
    var   str= '012.345 '; 
    var   x   =   str-0; 
    x   =   x*1;

上面的例子利用了js的弱类型特性,只进行算术运算,实现了字符串到数字的类型转换。 但是,不建议使用此方法。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 javascript javascript 字符串转换数字-JS字符串转换次数 https://www.wkzy.net/game/200903.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务