2012-01-14 3 views
0

JavaScript에서는 전달 된 두 변수가 문자열, 정수, 부울 등과 같은 동일한 데이터 유형인지 여부를 결정하는 함수를 작성하려고합니다. 그러나 두 변수를 비교하는 방법에 대해서는 잘 모릅니다. 변수 내부에 저장된 VALUES 대신에 DATA TYPES의 용어. 당신은 typeof을 찾고 있습니다JavaScript에서 변수 유형을 어떻게 구별합니까?

답변

1

typeof 연산자를 사용하여 변수의 데이터 유형을 찾을 수 있습니다. 그래서 동일한 유형 (반드시 동일하지 값)을 위해, 당신이 제안 당신은 typeof을 사용할 수 있습니다

var test = true, 
    test2 = "string"; 

if (typeof(test) === typeof(test2)) {} 
0

는) = 사전에 감사합니다.

0

사용 대해서 typeof()를 사용할 수있는 두 가지 변수를 테스트하지만 완벽 하진합니다; 배열과 Date 인스턴스는 모두 "객체"유형으로 간주됩니다.

function sameTypes() { 
    var tp = null, ts = Object.prototype.toString; 
    if (arguments.length === 0) return true; // or false if you prefer 
    tp = ts.call(arguments[0]); 
    for (var i = 1; i < arguments.length; ++i) 
    if (tp !== ts.call(arguments[i])) return false; 
    return true; 
} 

당신은 두 개 이상의 (물론 하나 또는 그 이상의 것 같아요) 값이 함수를 전달할 수 있으며이를 호출 한 결과 경우 true를 돌아갑니다 :

유형에 따라 비교하는 또 다른 불완전한 방법은 이것이다 Object 프로토 타입의 "toString"함수는 모두 동일합니다. 이 객체는 객체에 프리미티브를 승격시키기 때문에 완벽하지 않으므로 문자열 상수는 String 인스턴스와 동일한 유형으로 보일 것입니다.

3

if(typeof a == typeof b) { /* same type */ } 
관련 문제