>  기사  >  웹 프론트엔드  >  자바스크립트에서 문자열을 숫자로 변환하는 방법

자바스크립트에서 문자열을 숫자로 변환하는 방법

青灯夜游
青灯夜游원래의
2021-10-15 11:55:5460956검색

변환 방법: 1. "-", "*", "/", "%", "++", "--" 등의 연산자를 사용합니다. 2. "숫자(값)" 문을 사용합니다. . "parseInt(stringNum)" 문을 사용하십시오. 4. "parseFloat(stringNum)" 문을 사용하십시오.

자바스크립트에서 문자열을 숫자로 변환하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

javascript는 문자열을 숫자로 변환합니다

방법 1: -*/%++, -- 등의 연산자를 사용합니다.

JavaScript는 자동으로 문자열을 숫자로 변환하고, 숫자로 변환할 수 없는 문자는 변환합니다. NaN 으로. 예:

alert("30"/5);   //除运算,结果为:6
alert("15"-5);   //减运算,结果为:10
alert("20"*"a"); //乘运算,结果为:NaN
alert("20"%"3"); //取模运算,结果为:2
var num1 = "6";
var num2 = "6";
var num3 = "a";
alert(++num1);  //将字符串转换为数字再进行++运算,结果为:7
alert(--num2);  //将字符串转换为数字再进行--运算,结果为:5
alert(++num3);  //字符串无法转换为数字,结果为:NaN

방법 2: Number() 함수 사용

Number() 함수는 매개 변수를 숫자로 변환할 수 있습니다.

형식은 다음과 같습니다.

Number(value)

Number()는 전체 작업을 수행합니다. 매개변수 값 변환, 매개변수 값에 어디에서나 숫자로 변환할 수 없는 기호가 포함된 경우 변환이 실패하고 NaN이 반환됩니다. 그렇지 않으면 변환된 숫자가 반환됩니다.

Number()는 매개변수를 숫자로 변환할 때 다음 규칙을 따릅니다.

  • 매개변수에 숫자만 포함된 경우 숫자 앞에 -, -가 오면 앞에 오는 0과 공백을 무시하고 십진수로 변환됩니다. 변환 결과에 유지됩니다. 숫자 앞에 +가 있으면 변환 후 + 기호가 삭제됩니다.

  • 매개변수에 유효한 부동 소수점 숫자가 포함되어 있으면 무시하고 해당 부동 소수점 숫자로 변환합니다. 선행 0 및 선행 공백; 숫자 앞에 -가 있으면 변환 결과에 -가 유지됩니다. 숫자 앞에 +가 있으면 변환 후 + 기호가 삭제됩니다. 유효한 16진수는 해당 크기의 10진수로 변환됩니다.

  • 매개변수가 빈 문자열이면 0으로 변환됩니다.

  • 매개변수가 부울 값이면 true입니다. 1로 변환되고 false는 0으로 변환됩니다.

  • 매개변수가 null이면 0으로 변환됩니다.

  • 매개변수가 정의되지 않으면 NaN으로 변환됩니다. 매개변수가 날짜 객체인 경우 1970년 1월 1일부터 변환이 수행된 시간까지의 밀리초 수로 변환됩니다.

  • 매개변수가 함수인 경우 2개 이상의 요소를 포함하는 배열 객체, Date 객체를 제외한 다른 객체는 NaN으로 변환됩니다.

  • 매개 변수에 공백, + 및 - 또는 숫자가 아닌 문자를 제외한 다른 특수 기호 또는 공백, +, - 매개변수 중간에서 NaN으로 변환됩니다.

  • 변환 예:
  • alert(Number("0010"));  //去掉两个前导0,结果为:10
    alert(Number("+010"));  //去掉前导0和+,结果为:10
    alert(Number("-10"));  //转换后保留“-”号,结果为:-10
    alert(Number(''));      //空字符串的转换结果为:0
    alert(Number(true));   //布尔值true的转换结果为:1
    alert(Number(null));   //null值的转换结果为:0
    var d = new Date();      //创建一个Date对象
    alert(Number(d));     //转换Date对象,结果为1970.1.1至执行转换时的毫秒数:1511351635179
    alert(Number("100px"));   //参数中包含了不能转换为数字的字符px,结果为:NaN
    alert(Number("100 01"));  //参数中包含了空格,导致整个参数不能转换,结果为:NaN
    alert(Number("100-123")); //参数中包含了“-”,导致整个参数不能转换,结果为:NaN
    var a;                   //声明变量
    alert(Number(a));     //变量a没有赋值,因而a的值为undefined,转换undefined的结果为:NaN
    var fn = function (){alert(1);}; //创建一个函数对象
    alert(Number(fn));     //转换函数,结果为:NaN
    alert(Number(window)); //转换window对象,结果为:NaN

    위 예에서 Number()가 전체적으로 변환되는 것을 볼 수 있으며, 임의의 위치에 잘못된 문자가 포함되면 변환이 실패하게 됩니다. 다음에 소개하는 두 함수와 Number()의 차이점은 변환이 왼쪽에서 오른쪽으로 비트 단위로 수행된다는 점입니다. 변환할 수 없는 비트가 있으면 변환이 즉시 중지되고 변환에 성공한 값이 반환됩니다.

방법 3: parseInt() 함수 사용

parseInt() 함수는 매개 변수를 정수로 변환할 수 있습니다.

형식은 다음과 같습니다.

parseInt(stringNum,[radix])

stringNum 매개 변수는 정수로 변환해야 하는 문자열입니다. radix 매개변수는 2~ 36 사이의 숫자는 stringNum 매개변수의 기본 번호를 나타내며, 값이 10인 경우 생략 가능합니다. parseInt()는 기수를 기본으로 하는 stringNum 문자열 매개변수를 십진수로 구문 분석하는 데 사용됩니다. stringNum 문자열이 유효한 문자로 시작하지 않으면 NaN이 반환됩니다. 구문 분석 프로세스 중에 잘못된 문자가 발견되면 구문 분석이 즉시 중지되고 구문 분석된 값이 반환됩니다.

parseInt()는 문자열을 정수로 구문 분석할 때 다음 규칙을 따릅니다.

문자열을 구문 분석할 때 문자열 앞에 -가 있으면 문자열 앞뒤의 공백은 무시됩니다. 변환 결과; 숫자 앞에 +가 있으면 변환 후 + 기호가 삭제됩니다.

문자열 앞에 공백, + 및 - 또는 a~f를 제외한 숫자가 아닌 문자가 있으면; 또는 A~F), 문자열은 구문 분석되지 않으며 결과는 NaN입니다.

  • 문자열에 공백, +, - 및 소수점 "."과 같은 숫자가 아닌 문자나 특수 기호가 포함된 경우 구문 분석이 수행됩니다. 중지하고 구문 분석된 결과를 반환합니다.

  • 문자열이 빈 문자열이면 반환 결과는 NaN입니다.

  • 변환 예:

    alert(parseInt("1101",2));  //以2为基数的1101字符串解析后的结果为:13
    alert(parseInt("a37f",16)); //以16为基数的a37f字符串解析后的结果为:41855
    alert(parseInt("123"));     //以10为基数的123字符串解析后的结果为:123
    alert(parseInt("  123"));   //字符串前面的空格会被忽略,结果为:123
    alert(parseInt("12 3"));    //字符串中包含了空格,解析到空格时停止,结果为12
    alert(parseInt("12.345")); //字符串中包含了小数点,解析到小数点时停止,结果为12
    alert(parseInt("xy123"));  //字符串前面包含了非数字字符“x”,无法解析,返回结果为:NaN
    alert(parseInt("123xy4")); //字符串中包含了非数字字符“xy”,解析到“x”时停止,结果为:123
  • 위의 예에서, parsInt()가 부동 소수점 숫자를 구문 분석할 때 데이터의 소수 부분이 잘리는 것을 볼 수 있습니다. 이 경우,parseFloat()를 사용해야 합니다. 이는 parInt() 대신 아래에 소개됩니다.
  • 방법 4:parseFloat() 함수 사용

parseFloat()함수는 매개변수를 부동 소수점 숫자로 변환할 수 있습니다.

형식은 다음과 같습니다.

parseFloat(stringNum)

stringNum 매개변수는 문자열입니다. 부동 소수점 숫자로 구문 분석됩니다.

parseFloat() 的作用是将首位为数字的字符串转解析成浮点型数。若 stringNum 字符串不是以合法的字符开头,则返回 NaN;解析过程中如果遇到不合法的字符,将马上停止解析,并返回已经解析的值。

parseFloat() 在解析字符串为整数时,遵循以下规则:

  • 解析字符串时,会忽略字符串前后的空格;如果字符串前面为-,-会保留在转换结果中;如果数字前面为+,转换后将删掉+号;如果字符串前面为小数点.转换结果会在小数点前面添加 0;

  • 如果字符串前面为除空格、+、-和。以外的特殊符号,字符串将不会被解析,返回结果为 NaN;

  • 在字符串中包含了空格、+和-等特殊符号或非数字的字符时,解析将在遇到这些字符时停止,并返回已解析的结果;

  • 在字符串中包含两个以上为小数点时,解析到第二个小数点时将停止解析,并返回已解析的结果;

  • 如果字符串是空字符串,返回结果为 NaN。

转换示例:

alert(parseFloat("312.456"));//结果为:312.456
alert(parseFloat("-3.12"));//字符串前面的“-”将保留,结果为:-3.12
alert(parseFloat("+3.12"));//字符串前面的“-”将保留,结果为:3.12
alert(parseFloat(".12"));//在小数点前面添加0,结果为:0.12
alert(parseFloat("  3.12"));//截掉字符串前面的空格,结果为:3.12
alert(parseFloat("312.4A56"));//字符串中包含非数字字符A,解析到A时停止,结果为:312.4
alert(parseFloat("31 2.4A56"));//字符串中包含空格,解析到空格时停止,结果为:31
alert(parseFloat("31.2.5"));//字符串中包含两个小数点,解析到第二个小数点时停止,结果为:31.2
alert(parseFloat("a312.456"));//字符串前面为非数字字符a,解析无法进行,结果为:NaN

【推荐学习:javascript高级教程

위 내용은 자바스크립트에서 문자열을 숫자로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.