공부+

190318 javascript

-연산자란

연산자는 하나이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입 연산 등을 수행해 하나의 값을 만든다.

이때 연산의 대상을 피연산자(Operand)라 한다.

피연산자도 평가되어 하나의 값이 되므로 표현식이고 피연산자를 연산자와 결합한 연산자 표현식도 물론 표현식이다.



피연산자가 "값"이라는 명사의 역할을 한다면
연산자는 "값을 만든다"라는 동사의 역할을 한다고 볼 수 있다.
다시 말해, 피연산자는 연산의 대상이 되어야 하므로
값으로 평가할 수 있어야 한다.
연산자는 값으로 평가된 피연산자를 연산해 새로운 값을 만든다.

-산술 연산자

산술 연산자(Artithmetic Operator)는 피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자 값을 만든다.

산술 연산을 할 수 없는 경우에는 NaN을 반환한다.

산술 연산자는 이항 산술 연산자와 단항 산술 연산자로 구분할 수 있다.


-이항 산술 연산자

이항 산술 연산자는 2개의 피연산자를 대상으로 연산하여 숫자 타입의 값을 만든다.

모든 이항 산술 연산자는 피연산자의 값을 변경하는 부수 효과(Side effect)가 없다.

다시 말해 어떤 산술 연산을 해도 피연산자의 값이 바뀌는 경우는 없고 단지 새로운 값을 만들 뿐이다.


-단항 산술 연산자

단항 산술 연산자는 1개의 피연산자를 대상으로 연산한다.

*증가/감소(++/-) 연산자는 피연산자의 값을 변경하는 부수 효과(Side effect)가 있다.

다시 말해 증가/감소 연산을 하면 피연산자의 값이 바뀐다.


증가/감소(++/-)연산자는 위치에 의미가 있다.

피연산자 앞에 위치한 전위 증가/감소 연산자(Prefix increment / decrement operator)는

먼저 피연산자의 값을 증가/감소시킨 후, 다른 연산을 수행한다.

피연산자 뒤에 위치한 후위 증가/감소 연산자(Postfix increment / decrement operator)는

먼저 다른 연산을 수행한 후, 피연산자의 값을 증가/감소시킨다.




+단항 연산자는 피연산자에 어떠한 효과도 없다. 음수를 양수로 반전하지도 않는다.

*그런데 숫자 타입이 아닌 피연산자에 사용하면 피연산자를 숫자 타입으로 변환하여 반환한다.

이때 피연산자를 변경하는 것은 아니고 숫자 타입으로 변환한 값을 생성해서 반환한다.

따라서 부수 효과는(Side effect)는 없다.



- 단항 연산자는 피연산자의 부호를 반전한 값을 반환한다.

+ 단항 연산자와 마찬가지로 숫자타입이 아닌 피연산자에 사용하면 피연산자를 숫자타입으로 변환하여 반환한다.

이때 피연산자를 변경하는 것은 아니고 부호를 반전한 값을 생성해서 반환한다. 따라서 부수 효과(Side effect)는 없다.







그 다음.




-----


[Reference, origin]

PoiemaWeb

'공부+' 카테고리의 다른 글

190419 javascript  (0) 2019.04.19
190329 javascript 제어문  (0) 2019.03.29
190326 javascript  (0) 2019.03.26
190317 javascript  (0) 2019.03.17
190316 javascript  (0) 2019.03.16