4.Javascript 연산과 반복문
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;
}
Leave a comment