>웹 프론트엔드 >프런트엔드 Q&A >자바스크립트에서 데이터 유형을 변환하는 방법

자바스크립트에서 데이터 유형을 변환하는 방법

青灯夜游
青灯夜游원래의
2021-09-16 18:04:035206검색

JavaScript에서 데이터 유형을 변환하는 방법: 1. 컴퓨팅 환경에 따라 값의 데이터 유형을 자동으로 변환하여 컴퓨팅 요구 사항을 충족합니다. 2. toString(), String() 및 같은 JavaScript 내장 함수를 사용합니다. 데이터 유형을 강제로 변환하는 구문 분석기(ParseInt())

자바스크립트에서 데이터 유형을 변환하는 방법

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

JavaScript는 동적 언어입니다. 소위 동적 언어는 일시적으로 언어의 모든 것이 불확실하다는 의미로 이해될 수 있습니다. 예를 들어 변수가 현재 정수라면 다음 순간에는 문자열이 될 수 있습니다. 변수의 데이터 유형이 정의되어 있지 않더라도 다양한 연산자에는 데이터 유형에 대한 요구 사항이 있습니다. 연산자가 연산자 유형이 예상 유형과 일치하지 않는 것을 발견하면 자동으로 유형을 변환합니다.

간단히 말하면 JavaScript는 컴퓨팅 환경에 따라 자동으로 값 유형을 변환하여 컴퓨팅 요구 사항을 충족할 수 있습니다.

예: 더하기 연산자를 사용하여 값을 문자열로 변환

//把数字转换为字符串
var n = 123;
n = n + "";
console.log(typeof n); //返回类型为 string

예: 곱셈 연산자를 사용하여 문자열을 숫자 값으로 변환

var n = "123";
n = n * 1;
console.log(typeof n); //返回类型为 number

그러나 대부분의 경우 개발자는 수동으로 데이터 유형( 강제 유형 변환)을 사용하여 작업 프로세스를 제어합니다.

1. 다른 데이터 유형을 String으로 변환

메서드 1: toString() 메소드

변환된 데이터 유형의 toString() 메소드를 호출합니다. 변환 결과가 반환되지만 참고: null 및 undefined 두 값에는 toString이 없으며 해당 메서드가 호출되면 오류가 보고됩니다.

var a = 123
a.toString()//"123"
var b = null;
b.toString()//"报错"
var c = undefined
c.toString()//"报错"

Number 유형의 toString() 메서드의 기본 모드를 사용하면 숫자를 다양한 진수로 출력할 수 있습니다. 예를 들어 2진수는 2, 8진수는 8, 16진수는 16입니다.

var iNum = 10;
alert(iNum.toString(2));        //输出 "1010"
alert(iNum.toString(8));        //输出 "12"
alert(iNum.toString(16));       //输出 "A"

방법 2: String() 함수

강제 유형 변환을 위해 String() 함수를 사용하는 경우 실제로는 Number 및 Boolean에 대해 toString() 메서드가 호출되지만

null 및 정의되지 않은 경우에는 toString() 메서드가 호출됩니다. 호출되지 않으면 null을 직접 "null"로 변환하고 정의되지 않음을 "undefine"으로 직접 변환합니다. String 메서드의 매개 변수가 개체인 경우 문자열 형식을 반환하고, 배열인 경우 문자열 형식을 반환합니다. 배열.

var a = null
String(a)//"null"
var b = undefined
String(b)//"undefined"

2. 다른 데이터 유형을 Number로 변환

방법 1: Number() 함수 사용

다음은 두 가지 경우로 나뉘는데, 하나는 매개변수가 원시 유형 값인 경우입니다. 매개변수가 객체입니다

(1) 원시 유형 값

① 문자열을 숫자로

    순수 숫자 문자열인 경우 직접 숫자로 변환합니다.
  • 문자열, 변환 NaN
  • 문자열이 빈 문자열이거나 공백으로 가득 찬 문자열이면 0
  • String({a: 1}) // "[object Object]"
    String([1, 2, 3]) // "1,2,3"
  • 으로 변환됩니다. ② 불리언 값을 숫자로 변환: true는 1로, false는 0으로 변환
Number('324') // 324
Number('324abc') // NaN
Number('') // 0

③정의되지 않은 숫자: NaN으로 변환

Number(true) // 1
Number(false) // 0

4null을 숫자로 변환: 0

Number(undefined) // NaN

으로 변환 ⑤Number()는 숫자 값을 매개 변수로 허용합니다. 이때 0으로 시작하는 음수 16진수와 8진수를 모두 인식할 수 있습니다. , 그리고 반환 값은 항상 10진수 값입니다

Number(null) // 0

(2) Object

간단한 규칙은 Number 메서드의 매개 변수가 객체일 때 단일 값을 포함하는 배열이 아닌 이상 NaN이 반환된다는 것입니다.

Number(3.15);    //3.15
Number(023);     //19
Number(0x12);    //18
Number(-0x12);   //-18

메서드 2:parseInt() &parseFloat()

이 메서드는 문자열을 처리하는 데 특별히 사용됩니다.parseInt()는 문자열을 정수로 변환하고 문자열에서 유효한 정수 내용을 꺼낼 수 있습니다. 숫자. parseFloat()는 문자열을 부동 소수점 숫자로 변환합니다. ParseFloat()는 유효한 소수점을 얻을 수 있다는 점을 제외하고는 ParseInt()와 유사합니다.

Number({a: 1}) // NaN
Number([1, 2, 3]) // NaN
Number([5]) // 5

parseInt()는 두 번째 매개변수가 없을 때 기본적으로 10진수 변환을 수행합니다. 두 번째 매개변수가 있는 경우 기준이 올바르지 않으면 NaN

console.log(parseInt('.21'));        //NaN
console.log(parseInt("10.3"));        //10
console.log(parseFloat('.21'));      //0.21
console.log(parseFloat('.d1'));       //NaN
console.log(parseFloat("10.11.33"));  //10.11
console.log(parseFloat("4.3years"));  //4.3
console.log(parseFloat("He40.3"));    //NaN

을 반환합니다. 둘 사이: Number 함수는 문자열을 숫자 값으로 변환하며 parsInt 함수보다 훨씬 더 엄격합니다. 기본적으로 한 문자를 숫자 값으로 변환할 수 없는 한 전체 문자열이 NaN으로 변환됩니다.

console.log(parseInt("13"));          //13
console.log(parseInt("11",2));        //3
console.log(parseInt("17",8));        //15
console.log(parseInt("1f",16));       //31

위 코드에서 parseInt는 문자를 하나씩 파싱하는 반면, Number 함수는 문자열의 유형을 전체적으로 변환합니다.

또한 빈 문자열 처리도 다릅니다

parseInt('42 cats') // 42
Number('42 cats') // NaN

3. 다른 데이터 유형을 부울로 변환합니다

它的转换规则相对简单:只有空字符串("")、null、undefined、+0、-0 和 NaN 转为布尔型是 false,其他的都是 true,空数组、空对象转换为布尔类型也是 true,甚至连false对应的布尔对象new Boolean(false)也是true

Boolean(undefined) // false
Boolean(null) // false
Boolean(0) // false
Boolean(NaN) // false
Boolean('') // false
Boolean({}) // true
Boolean([]) // true
Boolean(new Boolean(false)) // true

【推荐学习:javascript高级教程

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

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