Heim > Artikel > Web-Frontend > Erweitertes JavaScript (4) Drei Möglichkeiten, JS-Strings in Zahlen umzuwandeln
Wenn js Textfelder oder andere Formulardaten liest, ist der erhaltene Wert vom Typ String, Zum Beispiel zwei Textfelder a und b,wenn Sie Wert von 🎜>a ist 11, und der Wert > Wert ist 9 , dann sollte a.value kleiner sein als b.value,Weil sie alle in Form von Zeichenfolgen vorliegen. Es gibt drei Hauptmethoden: Konvertierungsfunktion, erzwungene Typkonvertierung und die Verwendung von js
Variable schwache Typkonvertierung. Konvertierungsfunktion
parseInt() und bereit parseFloat()Zwei Konvertierungsfunktionen. Ersteres wandelt den Wert in eine Ganzzahl um und letzteres wandelt den Wert in eine Gleitkommazahl um. Nur wenn diese Methoden für den Typ String aufgerufen werden, können diese beiden Funktionen für andere Typen korrekt ausgeführt werden. Sie geben NaN(Not a Number) . Einige Beispiele sind wie folgt: Der Code lautet wie folgt
:parseInt("1234blue"); //returns 1234 parseInt("0xA"); //returns 10 parseInt("22.5"); //returns 22 parseInt("blue"); //returns NaN
Die Methode parseInt() verfügt auch über einen Basismodus, der Binär-, Oktal-, Hexadezimal- oder jede andere Basiszeichenfolge in eine Ganzzahl konvertieren kann. Die Basis wird durch den zweiten Parameter der Methode
angegeben. Das Beispiel lautet wie folgt: Der Code lautet wie folgt :
parseInt("AF", 16); //returns 175 parseInt("10", 2); //returns 2 parseInt("10", 8); //returns 8 parseInt("10", 10); //returns 10
Wenn die Dezimalzahl führende 0
10 , damit Sie nicht versehentlich einen Oktalwert erhalten. Zum Beispiel: Der Code lautet wie folgt:
parseInt("010"); //returns 8 parseInt("010", 8); //returns 8 parseInt("010", 10); //returns 10
parseFloat( ) Die Methode wird ähnlich wie die Methode
gehandhabt. Ein weiterer Unterschied bei der Verwendung der Methode parseFloat()
besteht darin, dass die Zeichenfolge eine Gleitkommazahl in Dezimalform darstellen muss,parseFloat() Kein Basismodus. Das Folgende ist ein Beispiel für die Verwendung der Methode parseFloat()
:Der Code lautet wie folgt:
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
Erzwungene Typkonvertierung
ECMAScriptDie drei Arten von
-Umwandlungen sind wie folgt: Boolean(value)——Konvertieren Sie den angegebenen Wert in den Typ
Boolean; Number(value)——Konvertieren Sie den angegebenen Wert in Number (kann sein eine Ganzzahl oder Gleitkommazahl);
String(value) – Konvertieren Sie den angegebenen Wert in einen String.
用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。
当要转换的值是至少有一个字符的字符串、非0数字或对象(下一节将讨论这一点)时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。
可以用下面的代码段测试Boolean型的强制类型转换。
代码如下:
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()方法的处理方式相似,只是它转换的是整个值,而不是部分值。示例如下:
代码如下:
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()是最简单的,示例如下:
代码如下:
var s1 = String(null); //"null" var oNull = null; var s2 = oNull.toString(); //won't work, causes an error
代码如下:
<script> var str= '012.345 '; var x = str-0; x = x*1; </script>
上例利用了js的弱类型的特点,只进行了算术运算,实现了字符串到数字的类型转换,不过这个方法还是不推荐的。
以上就是JavaScript进阶(四)js字符串转换成数字的三种方法的内容,更多相关内容请关注PHP中文网(www.php.cn)!