연산자는 하나 이상의 표현식을 통해 하나의 값을 만든다.
이때
피연산자
가 '값'이라는 명사라면연산자
는 '피연산자를 연산하여 새로운 값을 만든다'라는 동사의 역할을 한다.
5 + 3; // 8
var x;
x = 10;
console.log(x); // 10
x += 5; // x = x+5;
console.log(x); // 15
x -= 5; // x = x-5;
console.log(x); // 10
// 문자열 연결 연산자
var str = 'My name is';
str += 'Kim';
console.log(str); // My name is Kim
// 동등 비교
5 == 5; // true
// 하지만 동등 비교는 결과를 예측하기 어렵다
'0' == ''; // false
0 == ''; // true
0 == '0'; // true
// 값과 타입이 모두 같은 경우에만 true를 반환하는 (===)연산자를 더 많이 쓴다
5 === 5; // true
5 === '5'; // false
하지만 이와중에 예외는 있는 법!
NaN ===NaN; // false
NaN은 자신과 일치하지 않는 유일한 값이다. 따라서 숫자가 NaN인지 조사하려면
isNaN
함수를 사용해야 한다.isNaN(NaN); // true isNaN(10); // false
논리 연산자는 우항과 좌항의 피연산자를 논리 연산한다.
종류: &&, ||, !
typeof 연산자는 데이터 타입을 문자열로 반환한다.
typeof 연산자는 7가지 문자열 "string"
, "number"
, "boolean"
, "undefined"
, "symbol"
, "object"
, "function"
중 하나를 반환한다.
typeof '' // "string"
typeof 1 // "number"
자바스크립트는 if...else
문과 switch
문으로 두 가지 조건문을 제공한다.
조건식의 평가 결과가 true일 경우 if문의 코드 블록이 실행되고, false일 경우 else 문의 코드 블록이 실행된다.
if (조건식1) {
// 조건식1이 참이면 이 코드 블럭이 실행
}
else if (조건식2) {
// 조건식2가 참이면 이 코드 블럭이 실행
else {
// 조건식1과 조건식2가 모두 거짓이라면 이 코드 블럭이 실행
}
else if
문과else
문은 옵션! 사용할 수도 사용하지 않을 수도 있다.
또한else if
문은 여러 번 사용할 수 있다.
switch문은 오른쪽 ()안의 값과 case 키워드 오른쪽 값을 평가하여 참 일시 콜론 오른쪽 구문을 실행한다.
폴스루(fall through)가 일어나지 않게 break
문을 써서 코드 블록에서 탈출시키는 것도 중요하다.
반복문은 조건식의 평가 결과가 참일 경우 코드 블록을 실행한다. 조건식이 거짓일 때까지 반복한다.
for 문은 조건식이 거짓이 나올 때까지 코드 블록을 반복적으로 실행한다.
for (var i = 0; i < 2; i++) {
console.log(i);
}
_____________________________________________________________
0
1
while 문은 주어진 조건식이 참이면 코드 블록을 계속해서 반복 실행한다.
for
문은 반복 횟수가 명확할 때 주로 사용하고while
문은 반복 횟수가 불명확할 때 주로 사용한다.
var count = 0;
while(true) {
console.log(count);
count++;
// 무한 루프
if(count === 3) break;
// if문을 통해 코드 블록 탈출
}
_____________________________________________________________
0
1
2
do...while 문은 코드 블록을 먼저 실행하고 조건식을 평가한다.
var count = 0;
do {
console.log(count); // 0 1 2 3
count++;
} while ( count <= 3);