: 대부분의 산술 연산자는 오직 숫자형의 피연산자만 다루고,
피연산자가 숫자형이 아닌 경우에 그 형을 숫자형
으로 바꿈.
// 예제1
alert( 6 - '2' ); // 4, '2'를 숫자로 바꾼 후 연산이 진행됩니다.
console.log(typeof (6 - '2')); // number
// 예제2
alert( '6' / '2' ); // 3, 두 피연산자가 숫자로 바뀐 후 연산이 진행됩니다.
console.log(typeof ('6' / '2')); // number
: 그러나 덧셈 연산자(+)는 좀 특이함.
🔆 특이1
String 형
으로 변환됨.alert(2 + 2 + '1' ); // '221'이 아니라 '41'이 출력됩니다.("1"를 그대로 문자로 읽음)
console.log(typeof (2 + 2 + '1' )); // string
🔆 특이2
: 그치만 숫자 타입이 아닌 피연산자에 덧셈 연산자(+)를 하나만 단항으로 쓰면 Number타입
으로 바뀜.
(The unary + operator converts its operand to Number type.)
function solution(idx) {
return +idx;
}
// <실행코드>
console.log(solution('1234'));
// 1234 (문자 "1234"를 10진법으로 읽어서, 10진법인 정수로 바꿈)
console.log(solution('-1234'));
// -1234 // 1234 (문자 "-1234"를 10진법으로 읽어서, 10진법인 정수로 바꿈)
: 이렇게 할당 연산자를 여러 개 연결한 경우, 평가는 “우측”부터 진행됨.
let a, b, c;
a = b = c = 2 + 2;
alert( a ); // 4
alert( b ); // 4
alert( c ); // 4
: 증가/감소 연산자는 "변수에만" 쓸 수 있음. 5++와 같이 값에 사용하려고 하면 에러가 발생.