LHJ

I'm a FE developer.

3-3. 연산자(Operator) / 산술 연산자(+ 연산자)

17 Nov 2020 » js_beginner

19. 산술 연산자(+ 연산자)

+ 연산자

  • + 양쪽의 표현식을 평가

    • 평가 결과를 더함

        var value = 1 + 2 + 4;
        console.log(value); // 7
      
      1. 우선 1과 2를 더하고
      2. 이어서 더한 값(3)에 4를 더합니다.
      3. 그리고 더한 값(7)을 value 변수에 할당합니다.

  • 평가 결과 연결

    • 한 쪽이라도 숫자가 아니면 연결

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

  • 왼쪽에서 오른쪽으로 연산

    • 1 + 5 + “ABC” 결과는?

        var value = 1 + 5 + "ABC";
        console.log(value); // 6ABC
      
      1. 우선 1과 5를 더하면 6이 됩니다.
      2. 이어서 6과 “ABC”를 연결합니다.