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 | 시도해보세요 |
쌍따옴표 안의 값은 문자열 값을 나타냅니다.
빨간 값일부 프로그래머가 원하지 않는 값이 지시됩니다.