코드로보시죠
[JavaScript-10] typeof연산자로 자료형 확인하기 본문
개발을 하다가, 변수가 너무 많아져서
이 변수가 어떤 데이터 타입을 참조하는지 확인하고 싶을 때는
typeof 변수명
의 형태로 써주면 됩니다.
출력 결과는 해당 자료형을 문자열로 리턴해줍니다.
코드로 보시죠
let a = 5
let b = 1.0
let c = 'hi'
console.log(typeof a); //number
console.log(typeof b); //number
console.log(typeof c); //string
한가지 특이한 점은, 파이썬이나 기타 언어와 달리,
자바스크립크는 정수와 소수를 int나 float로 구분하지 않고, 하나의 number자료형으로 퉁칩니다.
console.log(1 + 1.3);
//2.3
그래서, 이렇게 정수와 소수의 연산도 가능하다는 점!
자, 그런데, typeof연산자는 반환값이 문자열이고,
typeof자체도 연산자인데, 사칙연산 연산자보다 연산의 우선순위가 높습니다.
그래서, typeof연산자 뒤에, 변수간의 연산을 적어줄 경우 반드시 괄호를 써주셔야 예상치 못한 문제를 막을 수 있는데요,
바로 코드로 보시죠
let a = 3
console.log(typeof a + 2);
//출력결과 NaN
자, NaN은 숫자가 아니란 의미인데요,
뭔가 이상하네요.
우린 숫자끼리 더했는데 숫자가 아니라니요?
그 이유는, typeof a부분이 먼저 연산되어 'number'문자열로 바뀐 후에
'number' + 2를 하려고 하기 때문에, 문제가 생긴거죠.
let a = 3
console.log(typeof (a + 2));
//출력결과 number
괄호는 모든 연산자를 통틀어 연산순위가 1위입니다.
이제, 연산을 먼저 해 숫자끼리의 연산을 한 후에,
typeof연산자를 적용하니 number라는 값이 잘 출력되겠죠.
'[JavaScript] 코드잇과 함께!' 카테고리의 다른 글
[JavaScript-12] 형 변환 함수를 쓰지 않았는데 지 혼자 형변환 해버리네 (0) | 2023.09.24 |
---|---|
[JavaScript-11] 형 변환 (0) | 2023.09.24 |
[JavaScript-09] 불린(boolean) 연산 (0) | 2023.09.24 |
[JavaScript-08] 문자열 만들기 (0) | 2023.09.24 |
[JavaScript-07] 숫자형 자료형 연산의 모든 것 (0) | 2023.09.24 |