4.Javascript 연산과 반복문

2 minute read

1. String concatenation

console.log("my" + " cat"); // my cat
console.log("1" + 2); //12
console.log(`string literals : 1 + 2 = ${1 + 2}`); //single 쿼트

싱클쿼트(``)를 사용하게 되면 띄어쓰기와 줄바꾸기가 모두 적용된 상태로 나타나기 때문에 편리하다.

2. 숫자 연산

다르것들은 다 아니까 넘어가고 밑에것만 추가로 기억해두자

console.log(2 ** 3); // 2의 3승

3. 증감연사자

let count = 2;
const preIncerement = ++conter; // preIncrement = 3;
const postIncerement = conter++; // postIncrement = 3;
console.log(counter); //4

++counter 는 선증가 후 할당이고 , conter++는 선할당 후 증가이다. 그렇기에 다음과 같은 결과값이 얻어지게 된다. 마찬가지로 –counter는 선감소 후 할당이고 , counter–는 선할당 후 감소이다.

4. Logical operation

  • 4.1 or
const value1 = false;
const value2 = 4 < 2;

console.log(`or: ${value1 || value2 || check()}`); //good example
console.log(`or: ${check() || value1 || value2}`); //bad example

function check() {
  for (let i = 0; i < 10; i++) {
    //wastring time
    console.log("안녕");
  }
  return true;
}
  • or은 하나만 true여도 true이기 때문에 다 확인할 필요없이 true가 나오게 되면 뒷 코드를 더이상 확인 하지 않는다.

  • 윗 코드에서 Heavy한 즉 연산이 많은 함수같은것을 맨 앞에두게 되면 true 인지 false인지 판단하는데 시간이 오래걸리게 되므로 나머지 뒤에 있는 value1, value2를 확인하는데 오래 걸리게 된다. 따라서 함수나 연산이 복잡한것들은 맨 뒤에 배치해놓는게 좋다.

  • 4.2 and(&&)

const value1 = false;
const value2 = 4 < 2;

console.log(`or: ${value1 || value2 || check()}`); //good example
console.log(`or: ${check() || value1 || value2}`); //bad example

function check() {
  for (let i = 0; i < 10; i++) {
    //wastring time
    console.log("안녕");
  }
  return true;
}
  • and은 하나만 false여도 false이기 때문에 다 확인할 필요없이 flase가 나오게 되면 뒷 코드를 더이상 확인 하지 않는다.

  • 윗 코드에서 Heavy한 즉 연산이 많은 함수같은것을 맨 앞에두게 되면 true 인지 false인지 판단하는데 시간이 오래걸리게 되므로 나머지 뒤에 있는 value1, value2를 확인하는데 오래 걸리게 된다. 따라서 함수나 연산이 복잡한것들은 맨 뒤에 배치해놓는게 좋다.

  • 4.3 not(!)

  • ! 붙이면 not 의 의미

5. Equality

const stringFive = "5";
const numberfive = 5;

// == loose equality , with type conversion
console.log(stringFive == numberfive); //true
console.log(stringFive != numberFive); //false

// == strict equality , no type conversion
console.log(stringFive === numberfive); //false
console.log(stringFive !== numberFive); //true

윗 결과처럼 loose equality의 경우는 type을 구분하지 못하고 그 값으로만 비교를 하고 , strict equality는 값 뿐만아니라 type도 비교 한다. 그렇기에 웬만해서는 strict equality를 사용하는것이 좋다.

console.log(0 == false); // true
console.log(0 === false); // false
console.log("" == false); // true
console.log("" === false); //false
console.log(null == undefined); //true
console.log(null === undefined); //false

6. if, else if , else if

7. 3항 연산자

  • 간단하게 연산하거나 출력할때 사용한다. 3항연산자를 여러번 묶어서 사용하게 되면 가독성 떨어진다.
console.log(name === "ellie" ? "yes" : "no");

8. switch

  • if문에서 else if 를 너무 반복한다하면 switch를 사용하는것이 좋다.
const browser = "IE";

switch (browser) {
  case "IE":
    console.log("go away!");
    break;
  case "Chrome":
  case "Firefox":
    console.log("love you!");
    break;
  default:
    console.log("same all!");
    break;
}

9. while , do-while

10. for , continue , break

Leave a comment