Home  >  Article  >  Web Front-end  >  Advanced JavaScript (4) Three ways to convert js strings into numbers

Advanced JavaScript (4) Three ways to convert js strings into numbers

黄舟
黄舟Original
2017-02-11 14:42:421995browse

Three ways to convert js strings into numbers

When js reads text boxes or other form data, the value obtained is of string type,For example, two text boxes a and b,If you get ## The #value of #a is 11, and the value## of b #The value is 9, then a.value should be less than b.value,Because they are all in the form of strings. There are three main methods: conversion function, forced type conversion, and using

js

variable weakness Type conversion.

Conversion function

js

provides

parseInt() and parseFloat()Two conversion functions. The former converts the value into an integer, and the latter converts the value into a floating point number. Only by calling these methods on the String type can these two functions run correctly; for other types, they return NaN(Not a Number) . Some examples are as follows:

The code is as follows

:

parseInt("1234blue"); //returns 1234
parseInt("0xA"); //returns 10
parseInt("22.5"); //returns 22
parseInt("blue"); //returns NaN


The parseInt()

method also has a base mode, which can convert binary, octal, hexadecimal or any other base string into an integer. The base is specified by the second parameter of the

parseInt() method. The example is as follows: The code is as follows

:

parseInt("AF", 16); //returns 175
parseInt("10", 2); //returns 2
parseInt("10", 8); //returns 8
parseInt("10", 10); //returns 10

## If the decimal number contains the leading
0

, then it is better to use the base 10, so that you don't accidentally get an octal value. For example: The code is as follows:

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

## The parseFloat() method is the same as

parseInt()

The method is handled similarly. Another difference in using the parseFloat()

method is that the string must represent a floating point number in decimal form,

parseFloat() There is no base pattern. The following is an example of using the parseFloat()

method:

The code is as follows:

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

## Forced type conversion

You can also use forced type conversion (

type casting) Handle the type of converted value. Use a cast to access a specific value, even if it is of another type. The

ECMAScript#3

forced type conversions available are as follows: Boolean(value)——Convert the given value into the Boolean

type; Number(value)——Convert the given value into Number (can be an integer or floating point number);

String(value)

- Convert the given value to a string.

      用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。

      当要转换的值是至少有一个字符的字符串、非0数字或对象(下一节将讨论这一点)时,Boolean()函数将返回true。如果该值是空字符串、数字0undefinednull,它将返回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


利用js变量弱类型转换

代码如下:

<script>
var str= &#39;012.345 &#39;;
var x = str-0;
x = x*1;
</script>


上例利用了js的弱类型的特点,只进行了算术运算,实现了字符串到数字的类型转换,不过这个方法还是不推荐的

美文美图


以上就是JavaScript进阶(四)js字符串转换成数字的三种方法的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn