js에서 텍스트 상자나 기타 양식 데이터를 읽을 때 얻은 값은 문자열 유형입니다. 예를 들어 두 개의 텍스트 상자 a 및 b, a의 값은 11이고, b의 값은 11입니다. 값이 9 ,이면 a.value는 b.value보다 작아야 합니다.모두 문자열 형식이기 때문입니다
.크게 세 가지 방법이 있습니다: 변환 함수, 강제 유형 변환, js 사용
가변약형 변환.js은 parseInt() 및 을 제공합니다. parseFloat()두 가지 변환 함수. 전자는 값을 정수로 변환하고 후자는 값을 부동 소수점 숫자로 변환합니다. String 유형에서 이러한 메서드를 호출해야만 이 두 함수가 다른 유형에 대해 올바르게 실행될 수 있으며 NaN(Not a Number) .
몇 가지 예는 다음과 같습니다.코드는 다음과 같습니다:
parseInt("1234blue"); //returns 1234 parseInt("0xA"); //returns 10 parseInt("22.5"); //returns 22 parseInt("blue"); //returns NaN
parseInt() 메서드에는 기본 모드도 있는데, 이 모드에서는 2진수, 8진수, 16진수 또는 기타 기본 문자열을 정수로 변환할 수 있습니다. 베이스는 parseInt() 메소드의 두 번째 매개변수로 지정됩니다. 예시는 다음과 같습니다.
코드는 다음과 같습니다 :
parseInt("AF", 16); //returns 175 parseInt("10", 2); //returns 2 parseInt("10", 8); //returns 8 parseInt("10", 10); //returns 10
십진수 앞에 0이 포함된 경우 다음을 사용하는 것이 좋습니다. 실수로 8진수 값을 얻지 않도록 기본 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
유형 캐스팅(type)을 사용할 수도 있습니다. casting) 변환된 값의 유형을 처리합니다. 다른 유형이더라도 특정 값에 액세스하려면 캐스트를 사용하십시오.
ECMAScript사용 가능한 캐스트의 세 가지 유형은 다음과 같습니다.
부울(값)——주어진 값을 Boolean 유형으로 변환합니다.
Number(value)——주어진 값을 Number로 변환합니다( 정수 또는 부동 소수점 숫자);
String(value) - 주어진 값을 문자열로 변환합니다.
用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。
当要转换的值是至少有一个字符的字符串、非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)!