- [Javascript] 동적 타입 언어 자바스크립트 자료형 변환: '문자'와 숫자의 사칙연산2024년 02월 22일
- 주사위 clice
- 작성자
- 2024.02.22.:30
반응형동적 타입 언어 자바스크립트
언어는 크게 동적타입언어, 정적 타입언어, 강타입 언어, 약타입 언어로 나눌 수 있다.
동적 자료형 언어는 런타임 시에 변수의 자료형이 결정된다.
예시로는 Python, JavaScript, PHP, Ruby 등이 있다.
자료형이 런타임에 결정되기 때문에, 코드 작성 시 자료형을 명시적으로 지정해 줄 필요가 없다.
반면 정적 자료형 언어는 컴파일을 할 때 변수의 타입이 결정된다.
예시로는 C, C++, Java, C#, Scala 등이 있다.
자료형이 컴파일을 할 때 결정되기 위해서는, 코드 작성 시 명시적으로 자료형을 지정해주어야 한다.
자바스크립트는 동적 자료형(Dynamic) 언어이다.
그렇다면 자바스크립트가 동적 타입 언어라는걸 아는게 왜 중요할까?
아래 예시를 살펴보자
문자와 숫자의 사칙연산 예제
var x=5+1
이 코드에서 x=6이 될것이다
var x = '5'+1
하지만 위 같은 코드가 있을때, 다른 정적 타입 언어라면 문자열과 숫자를 더하니까 컴파일 에러가 발생한다
그러나 자바스크립트는, 어떻게든 이를 연산하기 때문에 숫자 1 또한 문자열 '1'로 바꿔주고, '5'+'1'을 연산한다.
최종적으로 x = 51 이 된다
var x = '홍진호' * 2
그럼 위 코드에서는 어떻게 될까?
'홍진호' '홍진호' 이렇게 두 번 출력이 될까?
답은 '아니오' 이다.
Javascript는 덧셈 연산자의 경우, 문자형이나 숫자형으로 바꾸어 연산을 하지만,
나머지 연산자: 뺄셈, 곱셈, 나눗셈 연산자에서는 무조건 숫자형으로 바꿔 연산을 한다
위 예시에서는 곱셈 연산자가 있으므로 문자형 데이터 '홍진호'를 숫자형으로 바꿔야 하는데, 그럴 수 없으니까 에러가 나고 NaN이 출력된다
반응형'프론트 > Javascript Typescript' 카테고리의 다른 글
[JS] 배열인지 아닌지 판단하는 메서드 Array.isArray() (0) 2024.05.03 [JS] 비구조화 할당(구조분해할당) 쓰는 이유와 사용 방법 (0) 2024.04.30 [Javascript] hasOwnProperty 함수 알아보자 (크라임씬 법원 살인사건에서 다잉메세지로 범인 찾기) (0) 2024.02.21 [Typescript] 타입스크립트란? 한번 배우면 자바스크립트로 다시는 못 돌아감 (1) 2024.02.18 [Javascript] 프론트 개발자라면 알아야 할 호이스팅의 핵심 개념(호스팅 아니고 Hoisting) (1) 2024.01.23 다음글이전글이전 글이 없습니다.댓글