alert
사용 → 전달받은 값의 자료형과 관계없이 문자열로 자동변환alert
메서드는 매개변수로 문자형을 받음alert(value)
에서 value는 문자형이여야함String(value)
함수를 호출해 전달받은 값을 문자열로 변환 가능let value = true;
alert(typeof value); // boolean
value = String(value); // 변수 value엔 문자열 "true"가 저장됩니다.
alert(typeof value); // string
alert( "6" / "2" ); // 3, 문자열이 숫자형으로 자동변환된 후 연산이 수행됩니다.
Number(value)
함수를 사용하면 주어진 값(value
)을 숫자형으로 명시해서 변환let str = "123";
alert(typeof str); // string
let num = Number(str); // 문자열 "123"이 숫자 123으로 변환됩니다.
alert(typeof num); // number
let age = Number("임의의 문자열 123");
alert(age); // NaN, 형 변환이 실패합니다.
Boolean(value)
사용alert( Boolean(1) ); // 숫자 1(true)
alert( Boolean(0) ); // 숫자 0(false)
alert( Boolean("hello") ); // 문자열(true)
alert( Boolean("") ); // 빈 문자열(false)
💡 주의: 문자열
"0"
은true
5 * 2
에는 왼쪽 피연산자 5
와 오른쪽 피연산자 2
-
let x = 1;
x = -x;
alert( x ); // -1, 단항 마이너스 연산자는 부호를 뒤집습니다.
let x = 1, y = 3;
alert( y - x ); // 2, 이항 마이너스 연산자는 뺄셈을 해줍니다.
덧셈 연산자 +
,
뺄셈 연산자 -
,
곱셈 연산자 *
,
나눗셈 연산자 /
,
나머지 연산자 %
,
거듭제곱 연산자 **
a % b
는 a
를 b
로 나눈 후 그 나머지를 정수로 반환alert( 5 % 2 ); // 5를 2로 나눈 후의 나머지인 1을 출력
alert( 8 % 3 ); // 8을 3으로 나눈 후의 나머지인 2를 출력
a ** b
를 평가하면 a
를 b
번 곱한 값이 반환alert( 2 ** 2 ); // 4 (2 * 2)
alert( 2 ** 3 ); // 8 (2 * 2 * 2)
alert( 2 ** 4 ); // 16 (2 * 2 * 2 * 2)
alert( 4 ** (1/2) ); // 2 (1/2 거듭제곱은 제곱근)
alert( 8 ** (1/3) ); // 2 (1/3 거듭제곱은 세제곱근)
+
의 피연산자로 문자열이 전달되면 덧셈 연산자는 덧셈이 아닌 문자열을 병합let s = "my" + "string";
alert(s); // mystring
+
를 사용할 때는 피연산자 중 하나가 문자열이면 다른 하나도 문자열로 변환된다는 점에 주의alert(2 + 2 + '1' ); // '221'이 아니라 '41'이 출력됩니다.
-
과 나눗셈 /
연산자의 문자형 피연산자alert( 6 - '2' ); // 4, '2'를 숫자로 바꾼 후 연산이 진행됩니다.
alert( '6' / '2' ); // 3, 두 피연산자가 숫자로 바뀐 후 연산이 진행됩니다.
// 숫자에는 아무런 영향을 미치지 않습니다.
let x = 1;
alert( +x ); // 1
let y = -2;
alert( +y ); // -2
// 숫자형이 아닌 피연산자는 숫자형으로 변화합니다.
alert( +true ); // 1
alert( +"" ); // 0
++
는 변수를 1 증가let counter = 2;
counter++; // counter = counter + 1과 동일하게 동작합니다. 하지만 식은 더 짧습니다.
alert( counter ); // 3
--
는 변수를 1 감소let counter = 2;
counter--; // counter = counter - 1과 동일하게 동작합니다. 하지만 식은 더 짧습니다.
alert( counter ); // 1
counter++
와 같이 피연산자 뒤에 올 때는, '후위형(postfix form)'이라고 부릅니다.
++counter
와 같이 피연산자 앞에 올 때는, '전위형(prefix form)'이라고 부릅니다.
let counter = 1;
let a = ++counter; // (*)
alert(a); // 2
let counter = 1;
let a = counter++; // (*) ++counter를 counter++로 바꿈
alert(a); // 1
let counter = 0;
counter++;
++counter;
alert( counter ); // 2, 위 두 라인은 동일한 연산을 수행합니다.
값을 증가시킨 후 증가한 값을 바로 사용 → 전위형 증가 연산자
let counter = 0;
alert( ++counter ); // 1
값을 증가 시키지만 증가 전의 기존값을 사용 → 후위형 증가 연산자
let counter = 0;
alert( counter++ ); // 0
- 비트 AND (
&
)- 비트 OR (
|
)- 비트 XOR (
^
)- 비트 NOT (
~
)- 왼쪽 시프트(LEFT SHIFT) (
<<
)- 오른쪽 시프트(RIGHT SHIFT) (
>>
)- 부호 없는 오른쪽 시프트(ZERO-FILL RIGHT SHIFT) (
>>>
)
자바스크립트엔 세 종류의 논리 연산자 ||
(OR), &&
(AND), !
(NOT)이 존재
alert( true || true ); // true
alert( false || true ); // true
alert( true || false ); // true
alert( false || false ); // false
false
인 경우를 제외하고 연산 결과는 항상 true
||
은 if
문에서 자주 사용됨. 주어진 조건 중 하나라도 참
인지를 테스트하는 용도