JavaScript 타입 변환

Number() 数值을 변환합니다.String() 문자열을 변환합니다.Boolean() 부울 값을 변환합니다.

JavaScript 데이터 타입

JavaScript에는 다섯 가지 값을 포함할 수 있는 데이터 타입이 있습니다:

  • 문자열(string)
  • 숫자(number)
  • 부울(boolean)
  • 객체(object)
  • 함수(function)

세 가지 객체 타입이 있습니다:

  • 객체(Object)
  • 날짜(Date)
  • 배열(Array)

데이터를 포함할 수 없는 두 가지 데이터 타입이 있습니다:

  • null
  • undefined

typeof 연산자

사용할 수 있습니다. typeof 연산자를 사용하여 JavaScript 변수의 데이터 타입을 결정합니다.

예제

typeof "Bill"                 // 반환 "string"
typeof 3.14                   // 반환 "number"
typeof NaN                    // 반환 "number"
typeof false                  // 반환 "boolean"
typeof [1,2,3,4]              // 반환 "object"
typeof {name:'Bill', age:62}  // 반환 "object"
typeof new Date()             // 반환 "object"
typeof function () {}         // 반환 "function"
typeof myCar                  // 반환 "undefined" *
typeof null                   // 반환 "object"

직접 시도해 보세요

주의하세요:

  • NaN의 데이터 타입은 숫자입니다
  • 배열의 데이터 타입은 객체입니다
  • 날짜의 데이터 타입은 객체입니다
  • null의 데이터 타입은 객체입니다
  • 정의되지 않은 변수의 데이터 타입은 undefined
  • 할당되지 않은 변수의 데이터 타입도 undefined

사용할 수 없습니다 typeof JavaScript 객체가 배열(또는 날짜)인지 확인합니다.

typeof의 데이터 타입

typeof 연산자는 변수가 아닙니다. 연산자에 속합니다. 예를 들어, + - * /)데이터 타입이 없습니다。

하지만,typeof 항상 반환합니다문자열을 반환합니다(계산 수의 타입을 포함합니다)。

constructor 속성

constructor 속성은 모든 JavaScript 변수의 생성자 함수를 반환합니다.

예제

"Bill".constructor                 // 반환 "function String()  { [native code] }"
(3.14).constructor                 // 반환 "function Number()  { [native code] }"
false.constructor                  // 반환 "function Boolean() { [native code] }"
[1,2,3,4].constructor              // 반환 "function Array()   { [native code] }"
{name:'Bill', age:62}.constructor  // 반환 "function Object()  { [native code] }"
new Date().constructor             // 반환 "function Date()    { [native code] }"
function () {}.constructor         // 반환 "function Function(){ [native code] }"

직접 시도해 보세요

다음을 확인할 수 있습니다: constructor 속성을 사용하여 특정 객체가 배열인지 확인할 수 있습니다("Array" 단어 포함):

예제

function isArray(myArray) {
    return myArray.constructor.toString().indexOf("Array") > -1;
}

직접 시도해 보세요

또는 더 간단하게, 객체가 배열 함수인지 확인할 수 있습니다:

예제

function isArray(myArray) {
    return myArray.constructor === Array;
}

직접 시도해 보세요

다음을 확인할 수 있습니다: constructor 속성을 사용하여 특정 객체가 날짜인지 확인할 수 있습니다("Date" 단어 포함):

예제

function isDate(myDate) {
    return myDate.constructor.toString().indexOf("Date") > -1;
}

직접 시도해 보세요

또는 더 간단하게, 객체가 날짜 함수인지 확인할 수 있습니다:

예제

function isDate(myDate) {
    return myDate.constructor === Date;
}

직접 시도해 보세요

JavaScript 타입 변환

JavaScript 변수는 새 변수로 변환되고 다른 데이터 유형으로 변환될 수 있습니다:

  • JavaScript 함수를 사용하여
  • JavaScript 자체를 통해자동변환

숫자를 문자열로 변환하십시오

전역 메서드 String() 숫자를 문자열로 변환할 수 있습니다.

이는 어떤 유형의 숫자, 텍스트, 변수, 또는 표현식에도 사용될 수 있습니다:

예제

String(x)         // 숫자 변수 x에서 문자열을 반환
String(123)       // 숫자 텍스트 123에서 문자열을 반환
String(100 + 23)  // 표현식의 숫자에서 문자열을 반환

직접 시도해 보세요

숫자 메서드 toString() 동일하게.

예제

x.toString()
(123).toString()
(100 + 23).toString()

직접 시도해 보세요

다음은숫자 메서드이 장에서는 숫자를 문자열로 변환할 수 있는 다양한 방법을 배울 것입니다:

메서드 설명
toExponential() 숫자를 반올림하고 지수 표기법을 사용하여 문자열로 씁니다.
toFixed() 숫자를 반올림하고 지정된 자릿수로 소수점을 사용하여 문자열로 씁니다.
toPrecision() 숫자를 지정된 길이로 문자열로 변환하는 반환 문자열.

부울 값을 문자열로 변환하다

전역 메서드 String() 부울 값을 문자열로 변환할 수 있습니다。

String(false)        // "false"을 반환
String(true)         // "true"을 반환

부울 메서드 toString() 동일하게.

false.toString()     // "false"을 반환
true.toString()      // "true"을 반환

날짜를 문자열로 변환하다

전역 메서드 String() 날짜를 문자열로 변환할 수 있습니다。

String(Date())      

날짜 메서드 toString() 동일하게.

예제

Date().toString()   

다음은날짜 메서드이 장에서는 날짜를 문자열로 변환할 수 있는 다양한 메서드를 찾을 수 있습니다:

메서드 설명
getDate() 숫자로 계산된 일을 얻습니다(1-31)
getDay() 또는 숫자로 계산된 주를 얻습니다(0-6)
getFullYear() 4자리 연도를 얻습니다(yyyy)
getHours() 시간을 얻습니다(0-23)
getMilliseconds() 밀리초를 얻습니다(0-999)
getMinutes() 분을 얻습니다(0-59)
getMonth() 월을 얻습니다(0-11)
getSeconds() 초를 얻습니다(0-59)
getTime() 시간을 얻습니다(1970년 1월 1일부터의 밀리초)

문자열을 숫자로 변환하다

전역 메서드 Number() 문자열을 숫자로 변환할 수 있습니다。

숫자를 포함하는 문자열(예 "3.14")은 숫자로 변환됩니다(예 3.14)。

비어 있는 문자열은 0으로 변환됩니다。

기타 문자열은 NaN(Not a number,숫자가 아닙니다)。

Number("3.14")    // 3.14을 반환
Number(" ")       // 0을 반환
Number("")        // 0을 반환
Number("99 88")   // NaN을 반환

다음은숫자 메서드이 장에서는 문자열을 숫자로 변환할 수 있는 다양한 메서드를 찾을 수 있습니다:

메서드 설명
parseFloat() 문자열을 해석하고 실수를 반환합니다.
parseInt() 문자열을 해석하고 정수를 반환합니다.

단일 + 연산자

단일 + 연산자변수를 숫자로 변환할 수 있는 기능을 사용할 수 있습니다:

예제

var y = "5";      // y는 문자열입니다
var x = + y;      // x는 숫자입니다

직접 시도해 보세요

변수를 변환할 수 없으면 여전히 숫자가 됩니다만 값은 NaN(Not a number):

예제

var y = "Bill";   // y는 문자열입니다
var x = + y;      // x는 숫자 (NaN)

직접 시도해 보세요

불을 숫자로 변환

전역 메서드 Number() 불도 숫자로 변환할 수 있습니다.

Number(false)     // 0을 반환
Number(true)      // 1을 반환

날짜를 숫자로 변환

전역 메서드 Number() 날짜를 숫자로 변환할 수 있습니다.

d = new Date();
Number(d)          

날짜 메서드 getTime() 동일하게.

d = new Date();
d.getTime()        

자동 타입 변환

JavaScript가 "잘못된" 데이터 타입을 처리하려고 할 때, 그 값을 "정확한" 타입으로 변환하려고 시도합니다.

결과는 항상 예상한 것과 같지 않습니다:

5 + null    // 5을 반환         null이 0으로 변환됨
"5" + null  // "5null"을 반환   null이 "null"로 변환됨
"5" + 2     // 52를 반환        2이 "2"로 변환됨
"5" - 2     // 3을 반환         "5"이 5로 변환됨
"5" * "2"   // 10을 반환        "5"과 "2"이 5과 2로 변환됨

직접 시도해 보세요

자동 문자열 변환

JavaScript가 자동으로 변수의 toString() 함수, 당신이 객체나 변수를 "출력"하려고 시도할 때:

document.getElementById("demo").innerHTML = myVar;
// 만약 myVar = {name:"Fjohn"}  // toString으로 "[object Object]"
// 만약 myVar = [1,2,3,4]       // toString으로 "1,2,3,4"
// 만약 myVar = new Date()      // toString으로 ""

숫자와 불도 변환됩니다만, 명확하지 않습니다:

// 만약 myVar = 123             // toString으로 "123" 변환
// 만약 myVar = true            // toString으로 "true" 변환
// 만약 myVar = false           // toString으로 "false" 변환

JavaScript 타입 변환 표

다음 표는 다양한 JavaScript 값이 숫자, 문자열, 불리언으로 변환되는 결과를 나열합니다:

원래 값 숫자로 변환 문자열로 변환 논리로 변환 시도해보세요
false 0 "false" false 시도해보세요
true 1 "true" true 시도해보세요
0 0 "0" false 시도해보세요
1 1 "1" true 시도해보세요
"0" 0 "0" true 시도해보세요
"000" 0 "000" true 시도해보세요
"1" 1 "1" true 시도해보세요
NaN NaN "NaN" false 시도해보세요
Infinity Infinity "Infinity" true 시도해보세요
-Infinity -Infinity "-Infinity" true 시도해보세요
"" 0 "" false 시도해보세요
"20" 20 "20" true 시도해보세요
"twenty" NaN "twenty" true 시도해보세요
[ ] 0 "" true 시도해보세요
[20] 20 "20" true 시도해보세요
[10,20] NaN "10,20" true 시도해보세요
["twenty"] NaN "twenty" true 시도해보세요
["ten","twenty"] NaN "ten,twenty" true 시도해보세요
function(){} NaN "function(){}" true 시도해보세요
{ } NaN "[object Object]" true 시도해보세요
null 0 "null" false 시도해보세요
undefined NaN "undefined" false 시도해보세요

쌍따옴표 안의 값은 문자열 값을 나타냅니다.

빨간 값일부 프로그래머가 원하지 않는 값이 지시됩니다.