typeoftypeof 함수 설명
typeoftypeof 함수는 주어진 변수의 데이터 타입을 문자열로 반환합니다. 반환 가능한 값은 아래 표에 나와 있습니다.
| 반환 값 | 설명 |
|---|---|
| "number" | 변수는 실수(부동 소수점) 숫자를 포함합니다 - NaN 및 무한대 포함 |
| "string" | 변수는 문자열을 포함합니다 |
| "array" | 변수는 배열을 참조합니다 |
| "bool" | 변수는 불리언(true/false)을 포함합니다 |
| "int32" | 변수는 32비트 정수를 포함합니다. 이 타입은 HTML5에서 지원되지 않습니다. |
| "int64" | 변수는 64비트 정수를 포함합니다 |
| "ptr" | 변수는 포인터를 포함합니다 |
| "undefined" | 변수는 정의되지 않았습니다 |
| "null" | 변수는 null 값을 포함합니다 (정상적으로는 보이지 않아야 합니다) |
| "method" | 변수는 함수 참조를 포함합니다 |
| "struct" | 변수는 구조체 참조를 포함합니다 |
| "ref" | 변수는 핸들 참조를 포함합니다 |
| "unknown" | 값이 알려지지 않았습니다. 이는 메모리 덮어쓰기와 같은 기본적인 수준에서 문제가 발생했음을 나타냅니다. |
이 함수는 메서드에 대해 올바른 값을 반환하지 않을 수 있는 경우가 있습니다. 다음은 두 개의 함수 정의를 보여줍니다:
a = function() {
// something
}
function b() {
// Something
}
기술적으로, 두 함수 모두 메서드로 간주되지만, typeof를 function b에 호출하면 "ref"를 반환하고, a에 호출하면 "method"를 반환합니다. 이는 b가 스크립트 참조(핸들)에 할당된 메서드이기 때문이며, 컴파일러가 스크립트 함수를 인식하는 방식입니다.
문법
typeof(variable);
인수
| 인수 | 타입 | 설명 |
|---|---|---|
| variable | Any | 데이터 타입을 가져올 변수 |
반환 값
| 반환 값 | 타입 | 설명 |
|---|---|---|
| String | String | 위의 표 참조 |
예제
var _str = typeof(global.ExtensionInput);
show_debug_message("global.ExtensionInput is a " + _str);
위 코드는 주어진 전역 변수의 데이터 타입을 가져와서 문자열을 로컬 변수에 저장한 후, 이를 사용하여 콘솔에 메시지를 출력합니다.
활용 예제
- 변수의 타입 확인하기
var myVar = 42;
var typeOfMyVar = typeof(myVar);
show_debug_message("myVar is a " + typeOfMyVar);
- 배열의 타입 확인하기
var myArray = [1, 2, 3];
var typeOfMyArray = typeof(myArray);
show_debug_message("myArray is a " + typeOfMyArray);
- 함수의 타입 확인하기
var myFunction = function() {
return "Hello, World!";
};
var typeOfMyFunction = typeof(myFunction);
show_debug_message("myFunction is a " + typeOfMyFunction);
- null 값의 타입 확인하기
var myNull = null;
var typeOfMyNull = typeof(myNull);
show_debug_message("myNull is a " + typeOfMyNull);
- 정의되지 않은 변수의 타입 확인하기
var myUndefined;
var typeOfMyUndefined = typeof(myUndefined);
show_debug_message("myUndefined is a " + typeOfMyUndefined);