자바스크립트_기초_2.8

HwiJeongLee·2021년 8월 15일
0

자바스크립트

목록 보기
12/28

기본 연산자와 수학

용어

◼ 피연산자

연산이 수행되는 대상을 의미합니다. 100 + 300 에서 100, 300은 피연산자, +는 연산자를 의미합니다.

◼ 단항

피연산자를 하나만 받는 연산자를 단항 연산자라고 합니다.

var x = 5;
x = -x;
alert(x); // -5가 출력됩니다.

이처럼 부호를 뒤집는 단항 마이너스 연산자 '-'가 대표적인 단항 연산자입니다.

◼ 이항

+, -, ×, ÷ 등 처럼 두 개의 피연산자를 받는 연산자를 이항 연산자라고 합니다.

수학 연산자

  • : 덧셈 연산자
  • : 뺄셈 연산자
  • : 곱셈 연산자
    / : 나눗셈 연산자
    % : 나머지 연산자
    ** : 거듭제곱 연산자

    2 3 => 2^3 = 8
    8
    (1/3) => 8^(1/3) = 2
    즉, 실수의 제곱근도 표현이 가능합니다.

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

문자열 + 문자열은 덧셈 연산자가 아닌 문자열 병합을 의미합니다.

alert('1' + 2); // 12
alert(2 + '1'); //21
피연산자 두개 중 어느 하나라도 문자열이라면 다른 하나도 문자열로 취급되어 두 개를 병합합니다.

alert('1'+2+2); // 122
alert(3+'1'+2) // 312

덧셈 연산은 앞에서 차례대로 계산이 되므로 위의 두개의 예시는 처음부터 문자열로 취급됩니다.

alert(2+3+'1') // 51
하지만 이 연산은 2+3은 5로 먼저 숫자 연산이 처리되고 그 후 1이라는 문자열이 붙어 51이 출력됩니다.

'-' , '/' 연산의 경우
alert(6-'2') // 4
alert('6'/'2') // 3
으로 결과가 나오면 이는 문자열을 숫자로 변환한 후 연산이 진행된다는 사실을 확인할 수 있다.

단항 연산자 +

+는 이항 연산자 뿐만 아니라 단항 연산자로도 사용된다.

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

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

// 이렇게 숫자에는 아무런 영향을 미치지 않는다.
// 숫자형이 아닌 피연산자가 단항 + 연산자를 만나면 숫자형으로 변환됩니다.
alert( + true) // 1
alert(+ "") // 0으로 변환됩니다.
//이는 Number(..)와 같이 형변환 함수처럼 사용이 가능합니다.
let a = "3"
let b = "2"
alert(a+b) // 32 출력
alert( +a + +b) // (a를 숫자로) + (b를 숫자로) -> 3+2 -> 5 출력

쉼표 연산자

, 연산자는 익숙하지 않은 연산자입니다.
이는 코드를 짧게 숏 코딩을 할 때 주로 사용됩니다.

var a = (1+2, 3+4); 
// 이 뜻은
var a = 1+2;
a = 3+4;
//와 같습니다.
// 즉, 쉼표 마지막에 오는 연산만 a에 적용이 됩니다.

쉼표 연산자는 가독성 부분에서 매우 떨어지기 때문에 자주 사용되지 않습니다.

연습문제

아래 주어진 표현식들의 결과를 예측해봅시다.

"" + 1 + 0 = "10" , 맨 앞 ""때문에 문자열로 취급해야한다.
"" - 1 + 0 = -1 , ""이 빼기 연산에서 0으로 변환되므로 0-1+0 = -1
true + false = 1 true(1) + false(0)
6 / "3" = 2 , / 나눗셈 연산자는 문자열을 숫자로 변환한다.
"2" "3" = 6 , 곱셈 연산자는 문자열을 숫자로 변환한다.
4 + 5 + "px" = "9px"
"$" + 4 + 5 = "$45"
"4" - 2 = 2 , - 뺄셈 연산자는 문자열을 숫자로 변환한다.
"4px" - 2 = NaN, 숫자가 아닌 수와는 연산이 불가능하다.
7 / 0 = Infinity , 무한대
" -9 " + 5 = " -9 5" , 문자열의 병합으로 생각하기
" -9 " - 5 = -14 , 뺄셈은 문자열을 숫자로 바꾼다!
null + 1 = 1 , null은 0으로 계산 되므로
undefined + 1 = NaN, undefined은 숫자로 변환시 NaN이 된다.
" \t \n" - 2 = -2 , 앞의 문자열을 0으로 변환이 가능해진다. 다 공백을 의미하기 때문에!

profile
초보 개발자의 개발 공간

0개의 댓글