on
연산문, 반복문
1. 문자연산 String concatenation
문자열과 문자열 연결 가능
1.String concatenation
console.log('my' + ' cat');
console.log('1' + 2);
console.log(`string literals: 1 + 2 = ${1 + 2}`);
결과
2. 숫자연산 Numeric operators
숫자 연산 가능
2. Numeric operators
console.log(1 + 1); // add
console.log(1 - 1); // substract
console.log(1 / 1); // divide
console.log(1 * 1); // multiply
console.log(5 % 2); // remainder
console.log(2 ** 3); // exponentiation
결과
3. 증감 연산자 Increment and decrement operators
++ 혹은 – 를 앞에 놓냐, 뒤에 놓냐 에 따라 조금 다르다
3. Increment and decrement operators
let counter = 2;
const preIncrement = ++counter;
// counter = counter + 1;
// preIncrement = counter
console.log(`preIncrement: ${preIncrement}, counter: ${counter}`);
const postIncrement = counter++;
// postIncrement = counter;
// counter = counter + 1;
console.log(`postIncrement: ${preIncrement}, counter: ${counter}`);
결과
4. 할당연산자 Assignment operators
4. Assignment operators
let x = 3;
let y = 6;
x += y; // x = x + y;
x -= y; // x = x - y;
x *= y; // x = x * y;
x /= y; // x = x / y;
6. 논리 연산자 Logical operators
(or), && (and), ! (not)
|| (or), finds the first truthy value
하나라도 true 면 true
const value1 = false;
const value2 = 4 < 2;
console.log(`or: ${value1 || value2 || check()}`);
function check(){
for(let i = 0; i < 10; i++){
// wasting time
console.log('##');
}
return true;
}
결과
## * 10, or: true
&& (and), finds the first falsy value
하나라도 false 면 false
const value1 = false;
const value2 = 4 < 2;
console.log(`and: ${value1 && value2 && check()}`);
function check(){
for(let i = 0; i < 10; i++){
// wasting time
console.log('##');
}
return true;
}
결과
and : false
! (not)
결과를 반대로 바꿔줌 !true = false !false = true
const value1 = false;
const value2 = 4 < 2;
console.log(!value1);
결과
false
&& (and), finds the first falsy value
하나라도 false 면 false
const value1 = false;
const value2 = 4 < 2;
console.log(`and: ${value1 && value2 && check()}`);
function check(){
for(let i = 0; i < 10; i++){
// wasting time
console.log('##');
}
return true;
}
결과
and : false
7. 동등연산자 일치연산자 Equality operators
== 내용이 일치하는 지
=== 내용과 그 타입이 일치하는 지
7. Equality
const stringFive = '5';
const numberFive = 5;
// == loose equality, with type conversion
console.log(stringFive == numberFive);
console.log(stringFive != numberFive);
// == strong equality, no type conversion
console.log(stringFive === numberFive);
console.log(stringFive !== numberFive);
결과
true
flase
flase
true
// object equality by referance
const ellie1 = { name: 'ellie' };
const ellie2 = { name: 'ellie' };
const ellie3 = ellie1;
console.log(ellie1 == ellie2);
console.log(ellie1 === ellie2);
console.log(ellie1 === ellie3);
결과
flase
flase
true
ellie1과 ellie2는 각각 다른 referance에 할당되어 있기 때문에 다르다.
console.log(0 == false);
console.log(0 === false);
console.log('' == false);
console.log('' === false);
console.log(null == undefined);
console.log(null === undefined);
결과
true
flase
true
flase
true
flase
8. 조건부 연산자 If operators
if, else if, else 조건식이 ture일 경우 실행
8. If operators
const name = 'ellie';
if (name === 'ellie'){
console.log('Welcome, Ellie!');
} else if {
console.log('You are amazing coder');
} else {
console.log('unkwnon');
}
결과
Welcome, Ellie!
9. 삼항 연산자 Ternary operators
// condition ? value1 : value2;
const name = 'ellie';
console.log(name === 'ellie' ? 'yes' : 'no');
결과
yes
10. 스위치 구문 Switch statement
if 문과 다르게 비교할 변수가 어떤 값을 가지냐에 따라 실행한다.
미세하게 if문보다 빠르고 가독성이 좋게 작성할 수 있기 때문에 switch로 작성할 수 있으면 switch로 작성하는 게 좋다.
- 다양한 조건을 체크할 수 있다.
- value를 나열해서 체크할 수 있다.
- 타입스크립트에서 다양한 타입을 체크할 수 있다.
const browser = 'Chrome';
switch (browser) {
case 'IE' :
console.log('go away!');
break;
case 'Chrome' :
console.log('love you!');
break;
case 'Firefox' :
console.log('love you!');
break;
default :
console.log('same all!');
break;
}
결과
love you!
11. Loop 반복문
while loop
조건이 true인 경우 계속 반복, 조건이 false가 되면 멈춘다.
잘못 쓰면 무한 반복으로 브라우저가 다운될 수 있음
let i = 3;
while (i > 0) {
console.log(`while: ${i}`);
1--
}
결과
while: 3
while: 2
while: 1
do-while loop
do{} 안에 들은 변화식(실행문)을 실행하고 조건이 true인 경우 계속 반복, 조건이 false가 되면 멈춘다.
let i = 7;
do {
console.log(`do while: ${i}`);
i--
} while (i > 0);
결과
do while: 1
for loop
반복 횟수를 알고 있을 때 주로 사용
for(i = 3; i > 0; i--){
console.log(`for: ${i}`);
}
for(let i = 3; i > 0; i = 1 -2){
console.log(`inline variable for : ${i}`)
}
결과
for: 3
for: 2
for: 1
inline variable for: 3
inline variable for: 1
nested loop 중첩 반복문
반복문 안의 반복문
for(let i = 3; i > 0; i--){
for(let j = 3; j > 0; j--){
console.log(`i: ${i}, j: ${j}`);
}
}
결과
i: 0, j: 0
i: 0, j: 1
i: 0, j: 2
.
.
.
i: 0, j: 9
i: 1, j: 0
i: 1, j: 1
i: 1, j: 2
.
.
.
i: 9, j: 9
12. break, continue
continue
continue는 반복문(for, while, do-while)에서 사용
continue를 만나게 되면 for문은 바로 증감식으로, while문은 조건식으로 이동하여 해당 조건을 패스함
for(let i = 0; i > 11; i++){
if(i % 2 !== 0){
continue;
}
console.log(`q1. ${i}`);
}
결과
break
break도 반복문(for, while, do-while)에서 사용
break를 만나면 바로 반복문 종료
for(let i = 0; i > 11; i++){
if(i > 8){
break;
}
console.log(`q2. ${i}`);
}
결과
Discussion and feedback