문자열인지 확인하는 방법
이번 포스팅은 JavaScript에서 변수가 문자열인지 확인하는 몇 가지 방법과 주의사항을 소개합니다.
typeof 연산자
첫 번째 방법으로 JavaScript에서 타입을 확인할 수 있는 typeof 연산자를 사용하여 변수가 문자열인지 확인할 수 있습니다.
typeof 연산자는 피연산자의 데이터 유형을 반환하는 기능을 가지고 있으며, JavaScript의 기본 타입과 함수가 아닌 경우 객체로 취급합니다.
다음 예제는 typeof 연산자를 사용하여 다양한 데이터 타입을 확인합니다.
const strValue = 'Hello';
const numValue = 100;
const dateValue = new Date();
const array = [1, 2, 3];
const sum = function(a, b) {
return a + b;
}
console.log(typeof strValue); // string
console.log(typeof numValue); // number
console.log(typeof dateValue); // object
console.log(typeof array); // object
console.log(typeof sum); // function
typeof 연산자 사용 시 주의사항
typeof 연산자 사용 시 한 가지 주의사항이 있습니다. JavaScript에서 문자열, 불리언, 숫자 타입의 변수는 일반적으로 리터럴 방식으로 값을 할당하지만, new 키워드를 사용하여 값을 할당할 수도 있습니다.
// 리터럴 방식
const numValue1 = 10;
const strValue1 = 'Hello';
const boolValue1 = true;
// new 키워드를 사용하는 방식
const numValue2 = new Number(10);
const strValue2 = new String('Hello');
const boolValue2 = new Boolean('true');
JavaScript에서 new 키워드를 사용하여 변수를 생성하는 일이 거의 없지만, new 키워드를 사용하여 문자열 변수를 생성하는 경우 typeof 연산자는 해당 변수의 타입을 object로 취급합니다.
const strValue1 = 'Hello';
const strValue2 = new String('Hello');
console.log(typeof strValue1); // string
console.log(typeof strValue2); // object
만약, new 키워드로 생성된 변수의 값이 어떤 데이터 타입인지 확인하고 싶다면, valueOf() 메서드를 호출합니다.
const numValue = new Number(10);
const strValue = new String('Hello');
const boolValue = new Boolean(true);
// valueOf() 메서드를 호출하지 않은 경우
console.log(typeof numValue); // object
console.log(typeof strValue); // object
console.log(typeof boolValue); // object
// valueOf() 메서드를 호출한 경우
console.log(typeof numValue.valueOf()); // number
console.log(typeof strValue.valueOf()); // string
console.log(typeof boolValue.valueOf()); // boolean
또 다른 방법으로 instanceof 연산자를 사용하여 new 키워드로 생성된 변수의 타입을 확인할 수 있습니다. instanceof 연산자는 변수가 우측에 입력한 생성자에 의해 생성된 경우 true를 반환하고 그렇지 않으면 false를 반환합니다.
다음 예제는 instanceof 연산자를 사용하여 new 키워드로 생성된 변수의 생성자를 확인합니다.
const strValue = new String('Hello');
console.log(strValue instanceof String); // true
console.log(strValue instanceof Object); // true
console.log(strValue.valueOf() instanceof String); // false
console.log(strValue.valueOf() instanceof Object); // false
JavaScript의 객체는 최상위 객체인 Object와 연결되므로 instanceof 연산자에 Object를 입력한 경우에도 true를 반환합니다. 그리고 valueOf() 메서드의 반환 결과는 JavaScript의 기본 데이터 타입이므로 instanceof 연산자는 false를 반환합니다.
'JavaScript > 문자열' 카테고리의 다른 글
[JavaScript]문자열이 null인지 빈 값인지 체크하는 방법 (0) | 2022.10.01 |
---|---|
[JavaScript]문자열을 배열로 변환하는 방법 (0) | 2022.10.01 |
[JavaScript]문자열을 분리하는 방법 (0) | 2022.10.01 |
[JavaScript]문자열 비교하는 방법 (0) | 2022.09.23 |
[JavaScript]첫 번째 문자열이 대문자인지 소문자인지 체크하는 방법 (0) | 2022.09.18 |
댓글