연산문, 반복문

1. 문자연산 String concatenation

문자열과 문자열 연결 가능

1.String concatenation
console.log('my' + ' cat');
console.log('1' + 2);
console.log(`string literals: 1 + 2 = ${1 + 2}`);

결과

console.log 결과

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

결과

console.log 결과

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}`);

결과

console.log 결과

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에 할당되어 있기 때문에 다르다.

object 비교

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로 작성하는 게 좋다.

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}`);
}

결과

continue 사용 결과값

break

break도 반복문(for, while, do-while)에서 사용

break를 만나면 바로 반복문 종료

for(let i = 0; i > 11; i++){
  if(i > 8){
    break;
  }
  console.log(`q2. ${i}`);
}

결과

continue 사용 결과값

Discussion and feedback