1、使用内置函数 parseInt() 将字符串转换为整型。该函数的第二个参数表示字符串所表示数字的基(进制):
parseInt("123", 10); // 123 parseInt("010", 10); //10如果调用时没有提供第二个参数(字符串所表示数字的基),2013 年以前的 JavaScript 实现会返回一个意外的结果:
parseInt("010"); // 8 (2013之前的)parseInt("0x10"); // 16parseInt("010"); // 10 (现在的默认十进制)这是因为字符串以数字 0 开头,parseInt
() 函数会把这样的字符串视作八进制数字;同理,0x开头的字符串则视为十六进制数字。如果想把一个二进制数字字符串转换成整数值,只要把第二个参数设置为 2 就可以了:
parseInt("11", 2); // 3 2、内置函数 parseFloat(),用以解析浮点数字符串,与parseInt()不同的地方是,parseFloat()只应用于解析十进制数字。单元运算符 + 也可以把数字字符串转换成数值:
+ "42"; // 42 + "010"; // 10 + "0x10"; // 16如果给定的字符串不存在数值形式,函数会返回一个特殊的值 NaN
(Not a Number 的缩写):parseInt("hello", 10); // NaN要小心NaN:如果把
NaN作为参数进行任何数学运算,结果也会是NaN:NaN + 5; //NaN可以使用内置函数 isNaN() 来判断一个变量是否为
NaN:isNaN(NaN); // trueJavaScript 还有两个特殊值:
(正无穷)和Infinity-Infinity(负无穷):1 / 0; // Infinity -1 / 0; // -Infinity可以使用内置函数 isFinity()来判断一个变量是否是一个有穷数, 如果类型为
Infinity,-Infinity或NaN则返回false:isFinite(1/0); // false isFinite(Infinity); // false isFinite(NaN); // false isFinite(-Infinity); // false isFinite(0); // true isFinite(2e64); // true isFinite("0"); // true,如果是纯数值类型的检测,则返回false:Number.isFinite("0");备注: parseInt() 和 parseFloat()函数会尝试逐个解析字符串中的字符,直到遇上一个无法被解析成数字的字符,然后返回该字符前所有
数字字符组成的数字。使用运算符 "+" 将字符串转换成数字,只要字符串中含有无法被解析成数字的字符,该字符串都将被转换成NaN。
parseInt("11.1as"); // 11
+ "11.1ss" ; //NaN
本文介绍了JavaScript中使用parseInt()和parseFloat()函数将字符串转换为整数和浮点数的方法。此外,还探讨了如何处理特殊值如NaN、Infinity,并提供了单元运算符+的使用示例。
1717

被折叠的 条评论
为什么被折叠?



