a % b는 a를 b로 나눈 후 그 나머지(remainder)를 정수로 반환
alert( 5 % 2 ); // 5를 2로 나눈 후의 나머지인 1을 출력
alert( 8 % 3 ); // 8을 3으로 나눈 후의 나머지인 2를 출력
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 거듭제곱은 세제곱근)
alert( '1' + 2 ); // "12"
alert( 2 + '1' ); // "21"
alert(2 + 2 + '1' ); // '221'이 아니라 '41
// 숫자형이 아닌 피연산자는 숫자형으로 변화합니다.
alert( +true ); // 1
alert( +"" ); // 0
let a = 1;
let b = 2;
let c = 3 - (a = b + 1); // 0
let a, b, c;
a = b = c = 2 + 2;
let n = 2;
n += 5; // (n = n + 5와 동일)
n *= 2;
인수를 32비트 정수로 변환하여 이진 연산을 수행
let a = (1 + 2, 3 + 4);
alert( a ); // 7 (3 + 4의 결과)
alert( 2 > 1 ); // true
alert( 2 == 1 ); // false
alert( 2 != 1 ); // true
alert( 'Z' > 'A' ); // true
alert( 'Glow' > 'Glee' ); // true
alert( 'Bee' > 'Be' ); // true
alert( '2' > 1 ); // true, '2'->2
alert( '01' == 1 ); // true, '01'->1
alert( 0 === false ); // false
alert( 0 == false ); // true
alert(null === undefined); // false
alert(null == undefined); // true
alert( null > 0 ); // (1) false
alert( null == 0 ); // (2) false
alert( null >= 0 ); // (3) true
인수 중 하나라도 true이면 true를 반환하고, 그렇지 않으면 false를 반환
alert( true || true ); // true
alert( false || true ); // true
alert( true || false ); // true
alert( false || false ); // false
두 피연산자가 모두가 참일 때 true를 반환합니다. 그 외의 경우는 false를 반환
alert( true && true ); // true
alert( false && true ); // false
alert( true && false ); // false
alert( false && false ); // false
alert( !true ); // false
alert( !0 ); // true
alert( !!"non-empty string" ); // true
alert( !!null ); // false