19. 산술 연산자(+ 연산자)
+ 연산자
+
양쪽의 표현식을 평가평가 결과를 더함
var value = 1 + 2 + 4; console.log(value); // 7
- 우선 1과 2를 더하고
- 이어서 더한 값(3)에 4를 더합니다.
- 그리고 더한 값(7)을 value 변수에 할당합니다.
평가 결과 연결
한 쪽이라도 숫자가 아니면 연결
var two = "2"; var value = 1 + two; console.log(value); // 12 console.log(typeof value); // string
- 한쪽이라도 평가 결과가 Number 타입이 아니면 평가 결과를 더하지 않고 연결합니다.
- Number와 String이 더해졌을 때 연결되는 것이 과연 적합할까요?
일반적으론 에러가 나야됩니다.
그러나 자바스크립트는 에러로인해 웹 페이지를 그릴 수 없게 되는 것을 방지하려는 경향이 강합니다.
그런 경향이 반영된 것이 이러한 매커니즘입니다.
일반적인 관점에서보면 위 코드는 문법에 어긋난 코드입니다.
하지만 이것이 문법으로 정착화되면 이 또한 문법이 되는 것이고, 특징이 되는 것입니다.
자바스크립트는 가능한 에러가 안 나는 방향을 취하고자 했던 것입니다.
왼쪽에서 오른쪽으로 연산
1 + 5 + “ABC” 결과는?
var value = 1 + 5 + "ABC"; console.log(value); // 6ABC
- 우선 1과 5를 더하면 6이 됩니다.
- 이어서 6과 “ABC”를 연결합니다.