강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

자바스크립트 비기너: 튼튼한 기본 만들기

8. 데이터 타입(Data Type)

Number 타입과 String 타입의 +, * 연산 값 질문

작성

·

273

0

        var dataTypeNum = "10",
        dataTypeStr = 10,
        sum = dataTypeNum+dataTypeStr,
        multiply = dataTypeNum*dataTypeStr;

       console.log(sum, typeof sum)
       console.log(mul, typeof mul)

        //  위의 출력값
        //  1010, string
        //  100, number
        //
        //  출력값이 +는 string, *는 number 로 나뉘는게 맞는 건가요?

퀴즈

HTML 파일에 외부 JavaScript 파일을 포함할 때, `<script>` 태그에 `defer` 속성을 사용하는 주된 이유는 무엇일까요?

JavaScript 코드를 즉시 다운로드하고 실행하여 웹 페이지 로딩을 빠르게 합니다.

HTML 파싱을 완료한 후 JavaScript 코드를 실행하여 HTML 요소에 접근하는 데 오류가 없도록 합니다.

외부 JavaScript 파일의 다운로드를 막아 보안을 강화합니다.

스크립트 오류 발생 시 자동으로 오류를 수정하도록 합니다.

답변 1

0

지나가다 강의를 보다 답변드립니다. 미숙한 점이 있을 수도 있으니 양해바랍니다. 

일단 데이터를 할당할 때 문자타입에 " " 를 하고 숫자는 하지 않습니다. 

현재 할당하신 것을 보면 반대로 되어있네요. 

출력값이 +는 문자 *는 숫자로 나뉘는 것이 아니라 

뒤에 나오겠지만 

현재 할당해놓으신 수식을 보면 

sum = num + str 인데 할당이 반대로 되어있으니 

할당된 값으로 적어보겠습니다. 

sum = "10" + 10 

mul = "10"*10 

이렇게 적혀있는 것이구요 

문자열에서만 + 덧셈 연산자를 할 때 

10 + 10 = 20 이 아니라 숫자 10 과 문자열 10의 합은 

이어붙이는 식의 연결을 의미하여 

1010 이 되고 "1010" 이 출력되는 것입니다. 

그러므로 타입 또한 String이 되는 것이구요.

숫자의 덧셈에서는 예를 들어 

5+5 = 10 이면 10의 데이터 타입은 Number입니다.

곱셈에서는 

자바스크립트가 문자열이어도 숫자는 알아서 

숫자로 바꾸어 계산을 해줍니다. (뺄셈 나눗셈도 마찬가지)

그리하여 10*10 이 100이 나오게 되어 

데이터 타입이 Numder가 나오게 되는 것이구요. 

이해하시는데 도움이 되셨길 바랍니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기