기본 연산자와 수학

이말감·2021년 10월 23일
0

JavaScript

목록 보기
10/13

https://ko.javascript.info/operators

이항 연산자 '+' 와 문자열 연결

덧셈 연산자 +는 대개 숫자를 더한 결과를 반환한다.
그런데 이항 연산자 +의 피연산자로 문자열이 전달되면 덧셈 연산자는 덧셈이 아닌 문자열을 병합(연결)한다.

let s = "my" + "string";
alert(s); // mystring

따라서 이항 연산자 +를 사용할 때는 피연산자 중 하나가 문자열이면 다른 하나도 문자열로 변환된다.

alert('1' + 2); // 12
alert(2 + '1');

첫 번째 피연산자가 문자열인지, 두 번째 피연산자가 문자열인지는 중요하지 않다.
피연산자 중 어느 하나가 문자열이면 다른 하나도 문자열로 변환된다.

alert(2+2+'1'); // 41

연산은 왼쪽에서 오른쪽으로 순차적으로 진행되기 때문에 이런 결과가 나왔다.
두 개의 숫자 뒤에 문자열이 오는 경우, 숫자가 먼저 더해지고, 그 후 더해진 숫자와 문자열과의 병합이 일어난다.

뺄셈 -과 나눗셈 /연산자

alert(6 - '2'); // 3
alert('6' / '2'); // 3

숫자로 바뀐 후 연산이 진행된다.

단항 연산자 +와 숫자형으로의 변환

덧셈 연산자 +는 이항 연산자뿐만 아니라 단항 연산자로도 사용할 수 있다.
숫자에 단항 덧셈 연산자를 붙이면 이 연산자는 아무런 동작도 하지 않는다.
그러나 피연산자가 숫자가 아닌 경우엔 숫자형으로의 변환이 일어난다.

let x = 1;
alert(+x); // 1

let y = -2;
alert(+y); // -2

// 숫자형이 아닌 피연산자는 숫자형으로 변화한다.
alert(+true); // 1
alert(+""); // 0

단항 덧셈 연산자는 짧은 문법으로도 Number(...)와 동일한 일을 할 수 있게 해준다.

let apples = "2";
let oranges = "3";

alert(apples + oranges); // 23
// 이항 덧셈 연산자가 적용되기 전에, 두 피연산자는 숫자형으로 변화한다. 
alert(+apples + +oranges); // 5

형 변환 확인하기

  1. "" + 1 + 0
    답 : 10
  2. "" - 1 + 0
    답 : -1
  3. true + false
    답 : 1
  4. 6 / "3"
    답 : 2
  5. "2" * "3"
    답 : 6
  6. 4 + 5 + "px"
    답 : 9px
  7. "" + "4" + "5" 답 : $9 ( 땡 : "" + "4" 에서 "$4" 가 되고 그 다음 + "5" 해서 $45 )
  8. "4" - 2
    답 : 2
  9. "4px" -2
    답 :
    (땡 : NaN)
  10. 7 / 0
    답 : Infinity
  11. " -9 " +5
    답 : -9 5
  12. " -9 " -5
    답 : -14
  13. null + 1
    답 : 1
  14. undefined + 1
    답 : 1
    (땡 : NaN -> undefined는 숫자형으로 변환 시 NaN이 된다.)
  15. " /t /n" -2
    답 : -2
    (해설 : 문자열이 숫자형으로 변할 땐 앞뒤의 공백이 삭제됨.
    뺄겜 연산자 앞의 피연산자는 공백을 만드는 \t와 \n, 그 사이의 일반적인 공백으로 구성됨.
    따라서 \t, \n은 숫자형으로 변환 시 길이가 0인 문자열로 취급되어 숫자 0이 된다.)
profile
전 척척학사지만 말하는 감자에요

0개의 댓글