연산자와 자료형변환



 사칙연산을 이용해서 데이터를 연산하는 경우 때에 따라서 자료형 변환이 일어나게 된다.


+ 연산자

이 중 + 연산자는 숫자끼리의 연산이 아니라 문자열과 숫자가 함께 덧셈 연산이 이루어지는 경우 문자열로 자동형변환이 된다.



1
2
3
4
5
6
    <script>
        alert(10 + 20); //30 숫자 + 숫자 = 숫자
        alert('10' + 20//1020 문자열 + 숫자 = 문자열
        alert(10 + '20'); //1020 숫자 + 문자열 = 문자열
        alert('10' + '20'); //1020 문자열 + 문자열 = 문자열
    </script>
cs


위의 코드와 같이 + 연산자는 숫자끼리의 연산이 아니면 문자열로 자동형변환이 일어나는 것을 알 수 있다.



+ 이외의 연산자

 + 연산자를 제외한 사칙 연산자는 피연산자에 문자열이 있을 경우 숫자형으로 자동형변환 된다.

1
2
3
4
5
6
    <script>
        alert('20' - 10); //10
        alert('20' * 10); //200
        alert('20' / 10); //2
        alert('20' % 3); //2
    </script>
cs


강제형변환 / Number() String()



위와 같이 연사자를 이용하여 자료형이 자동으로 변환되는 것 이외에 강제로 자료형을 변환할 수도 있다.


앞선 03 입력하기 글에서 prompt()함수에 대해서 알아보았는데, 이 함수의 경우 숫자를 입력하여도 반환되는 값은 


문자열로 반환이 된다. 따라서 숫자형으로 연산을 하고자 할 경우에는 강제형변환을 해주어야한다.


강제형변환을 하는 함수는 Number()함수와 String() 함수이다.


Number()함수는 다른 자료형을 숫자로 바꾸어 반환해 준다.


String()함수는 다른 자료형을 문자열로 바꾸어 반환해 준다.



1
2
3
4
5
6
7
    <script>
        var input = prompt('Input Number''Input here');
        
        //input에 숫자 10입력
        alert( input + 10); //1010 문자열 + 숫자
        alertNumber(input) + 10); //20 숫자 + 숫자
    </script>
cs



 위 코드와 같이 prompt()함수를 이용해 입력받은 값을 숫자로 사용하고자 할 경우에는  Number()함수를 이용해서


강제형변환을 해주어야 한다.





'개발 > JavaScript' 카테고리의 다른 글

[JavaScript] 불 자료형 변환  (0) 2018.06.14
[JavaScript] NaN  (0) 2018.06.14
[JavaScript] 입력하기  (0) 2018.06.14
[JavaScript] 기본문법 - undefined 자료형  (0) 2018.06.14
[JavaScript] 자바스크립트의 역사  (0) 2018.06.13

+ Recent posts