산술연산자는 더하기, 빼기, 곱하기, 나누기 등과 같은 기본적인 사칙연산을 위해 사용한다.
+
: 더하기
-
: 빼기
*
: 곱하기
/
: 나누기
%
: 나머지 값
**
or ^
: 지수(승)
사칙연산 +, -, *, /, %
console.log(1 + 1);
// 2
console.log(1 - 2);
// -1
console.log(2 * 3);
// 6
console.log(2 / 3);
// 0.6666666666666666
console.log(9 % 2);
// 9 나누기 2의 값은 4이고 나머지는 1
++
는 기존의 값을 1 증가시키는 연산자.
--
는 기존의 값을 1 감소시키는 연산자.
let i = 1; i++; // 1 i; // 2 i--; // 2 i; // 1
변수 뒤에 ++ 기호를 붙이게 되면 변수에 1을 더하게 되지만 연산의 결과값은 1이다.
하지만 i의 값은 1이 증가한 2가 되었다.
let i = 1; ++i; // 2 i; // 2 --i; // 1 i; // 1
변수 앞에 ++ 기호를 붙이게 되면 연산의 결과값도 i의 값도 1 증가한 값을 반환한다.
++기호를 변수명 앞에 사용하는 것이 더 명확하다
대입 연산자는 우측에 있는 값을 좌측에 대입하는 역할을 한다
let a = 1;
과 같이 변수에 특정 값 대입시 사용
할당연산자 += 은 좌변의 값에 우변의 값을 더한 값을 좌변에 할당한다.
let x = 10 x = x + 1 => x += 1 x = x - 1 => x -= 1 x = x * 1 => x *= 1 x = x / 1 => x /= 1
비교 연산자는 좌변과 우변의 표현식을 비교해서 참이면 true 거짓이면 false를 반환한다.
1 == 1
NaN는 아래 연산자들의 영향을 받지 않는다.
변수 == NaN을 입력하고 싶다면 isNaN(변수)으로 입력하자.
==
값이 같을 때 true
"1" == 1
true
0 == false
true
===
값과 타입이 같을 때 true
1 === 1
true
"1" === 1
false
0 === false
false
!=
값이 다를때 true
"1" != 2
true
1 != false
true
!==
값과 타입이 다를때 true
"1" === 1
false
0 === false
false
1 === false
true
> , < , >= , <=
a
가 기준
a > b 클 때
true
a < b 작을 때
true
a >= b 크거나 같을 때
true
a <= b 작거나 같을 때
true
AND &&
좌우의 표현식의 결과가 모두 true일 경우 true를 반환하고, 하나라도 false일 경우 false를 반환
만약, 좌변이 false 인경우 && 우측의 표현식은 실행되지 않는다.
true && true
true
false && true
false
1 > 2 && 2 > 1
false
OR ||
좌우의 표현식 결과가 하나라도 true일 경우 true를 반환하고, 좌우 모두 false일 경우에만 false를 반환
만약, 좌변이 true인경우 || 우측의 표현식은 실행되지 않는다.
false || true
true
false || false
false
2 > 1 || 1 > 2
true
NOT !
표현식의 결과가 true일 경우 false를, false일 경우 true를 반환.
즉, true와 false를 변경.
!true
false
!false
true
typeof
연산자자료형의 문자열을 반환
typeof '42'
'string'
typeof 42
'number'
typeof true
'boolean'
typeof function(){}
'function'
typeof undefined
'undefined'
typeof null
'object'
typeof {}
'object'
typeof []
'object'
null 부터는 조금 이상하다. 그래서 객체의 타입을 조사할 때는 다른 방법을 사용한다.
표현식 ? 반환값1 : 반환값2 ;
let userName = "A"; let userAge = userName=="A" ? 30:20; console.log(result); userAge = 30;
앞의 표현식이 true라면 userAge에 반환값 30을 출력하고
false라면 반환값 20를 출력한다.
let userAge2 = 25;
let userName2 = 20<userAge2 && userAge2<30 ? A: B;
console.log(result);
>
userName2 = A;
let num = prompt("숫자를 입력해주세요");
if(isNaN(Number(num)) || !num ){
alert("숫자를 입력하세요.")
}else if(num%2 != 0){
document.write("홀수입니다.")
}else{
document.write("짝수입니다.")
}
입력한 숫자가 홀수라면 "홀수입니다."
짝수라면 "짝수입니다."
라는 문구를 출력한다.
숫자가 아니라면 "숫자를 입력하세요."
라는 경고창이 뜬다.
if //만약에,
(isNaN(Number(num)) //= 함수 num을 숫자로 변환 했을 때 값이 NaN 이라면 *구문A
|| //= 또는
!num) //=값이 false 라면,
// (값이 false인 경우 = 숫자 0, 빈 문자열 "", null, undefined, NaN)
{ alert("숫자를 입력하세요.") //= "숫자를 입력하세요"라는 문구의 경고창을 띄운다.
}
else if //= 위 *구문A가 충족하지 않는다면, 만약에
(num%2 != 0) //= 함수 num을 2로 나눴을 때의 나머지가 0이 아니라면 *구문B
{ document.write("홀수입니다.") //= "홀수입니다." 라는 문구를 document에 작성한다.
}
else //= 위 *구문A와 *구문B가 충족하지 않는다면
{ document.write("짝수입니다.") //= "짝수입니다." 라는 문구를 document에 작성한다.
}