부호 바꾸기
<script>
let result=10;
document.querySelector("#div1").innerHTML+=result+"<br>";
document.querySelector("#div1").innerHTML+=typeof(result)+"<br>";
let result2=-result;
document.querySelector("#div1").innerHTML+=result2+"<br>";
document.querySelector("#div1").innerHTML+=typeof(result2)+"<br>";
</script>
연산자
기본적인건 자바와 똑같음
+ - * / % **(거듭제곱)
예) var a=4**3 (4*4*4*)
✔ 이항 연산자 +를 사용할 때는 피연산자 중 하나가 문자열이면
다른 하나도 문자열로 변환된다.
alert( '10' + 2 ); // "102"
alert( 2 + '10' ); // "210"
✔ +연산자 같은 경우 문자를 만나는 순간 문자로 바뀜
✔ 하지만, 다른 산술 연산자가 오직 숫자형의 피연산자만 다루고,
피연산자가 숫자형이 아닌 경우에 그 형을 숫자형으로 바꿈
<script>
let result=1+1+'1';
document.querySelector("#div1").innerHTML+=result+"<br>";
document.querySelector("#div1").innerHTML+=typeof(result)+"<br>";
let result2='3'-1;
document.querySelector("#div1").innerHTML+=result2+"<br>";
document.querySelector("#div1").innerHTML+=typeof(result2)+"<br>";
let result3='3'/3;
document.querySelector("#div1").innerHTML+=result3+"<br>";
document.querySelector("#div1").innerHTML+=typeof(result3)+"<br>";
</script>
✔단항 덧셈 연산자를 이용해 피연산자를
숫자형으로 변형시켜 줄 수 있음
<script>
let result='3';
document.querySelector("#div1").innerHTML+=result+"<br>";
document.querySelector("#div1").innerHTML+=typeof(result)+"<br>";
let result2='5';
document.querySelector("#div1").innerHTML+=result2+"<br>";
document.querySelector("#div1").innerHTML+=typeof(result2)+"<br>";
let result3=+result + +result2;
document.querySelector("#div1").innerHTML+=result3+"<br>";
document.querySelector("#div1").innerHTML+=typeof(result3)+"<br>";
</script>
✔ 연산자 우선 순위 아래 링크에서 확인하기
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
복합 할당 연산자
var n = 5;
n += 5; // (n = n + 5와 동일).
n *= 5; // (n = n * 2와 동일).
증가-감소 연산자
let counter = 1;
let a = ++counter; // a=2 counter=2
let counter1 = 1;
let a = counter1++; // a=1 counter=2
// 반환 값을 사용하지 않는 경우
let counter2=0;
let counter3=0;
counter2++;
++counter3; // counter2 와 counter3는 같은 값을 가진다.
예제
1번
let a = 3;
let x = 2 + (a *= 2);
// a=6 x=8
2번
"" + 1 + 0 //10
"" - 1 + 0 //-1
true + false //1
6 / "3" //2
"2" * "3" //6
4 + 5 + "px" //9px
"$" + 4 + 5 //$45
"4" - 2 //2
"4px" - 2 //NaN
7 / 0 //INFINITY
" -9 " + 5 //-95
" -9 " - 5 //-14
null + 1 //1
undefined + 1 //NaN
" \t \n" - 2 //-2 문자열이 숫자형으로 변할 땐 문자열 앞뒤의 공백이 삭제 /
//" \t \n"는 숫자형으로 변환 시 길이가 0인
//문자열로 취급되어 숫자 0이 됨