본문 바로가기
공부중/혼자공부하는자바스크립트

Operator

by 식빵ee 2024. 1. 18.
# 1. String concatenation
console.log("my" + "cat");
console.log("1" + 2); # 숫자가 문자열로 변해서 합쳐진다.
console.log(`string literals: 1 + 2 = ${1 + 2}`);
console.log("hy's \nbook");

# 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(1 % 1); # remainder
console.log(1 ** 1); # exponentiation

# 3. Increment and decrement operators
let counter = 2;
const preIncrement = ++counter; #  counter에 1을 더해서 counter에 할당
# counter = counter + 1;
# preIncrement = counter ;
console.log(`preIncrement: ${preIncrement}, counter: ${counter}`);
const postIncrement = counter++;
# postIncrement = counter;
# counter = counter + 1 ;
console.log(`postIncrement: ${postIncrement}, counter: ${counter}`);

# 4. Assignment operatiors
let x = 3;
let y = 6;
x += y; # x = x + y ;
x -= y;
x *= y;
x /= y;

# 5. Comparison operators
console.log(10 < 6);
console.log(10 <= 6);
console.log(10 > 6);
console.log(10 >= 6);

# 6. Logical operators : || (or), && (and), ! (not)
const value1 = false;
const value2 = 4 < 2; #false

# || (or) or연산자는 처음으로 true가 나오면 멈춘다(앞에 true가 나오면 뒤에 true든 false든 상관안한다.)
# heavy한 연산 함수는 뒤에 두고 심플한 연산은 앞에 둔다.
console.log(`or: ${value1 || value2 || check()}`);

# && (and) and도 맨 앞의 value1가 false면 뒤에 true가 와도 false이기 때문에 간단한 연산을 맨 앞에 둔다.)
console.log(`and: ${value1 || value2 || check()}`);
# and는 간단하게 null 체크할 때도 자주 쓰인다.
# nullableObject && nullableObject.something
if (nullableObject != null) {
  nullableObject.somethig;
}

function check() {
  #그냥 시간 잡아먹는 함수
  for (let i = 0; i < 10; i++) {
    # wasting time
    console.log("omg");
  }
  return true;
}

# ! (not)
console.log(!value1);

# 7. 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); #ture

# object equality by reference
const hy1 = { name: "chy" };
const hy2 = { name: "chy" };
const hy3 = hy1;
console.log(hy1 == hy2); #1과 2는 서로 reference가 다르기때문에 false
console.log(hy1 === hy2); # false
console.log(hy1 == hy3); # true

#equality - puzzler
console.log("" === false); # true
console.log(null == undefined); #true
console.log(null === undefined); #false

# 8. Conditional oerators: if
# if, else if, else
const name = "chy";
if (name === "chy") {
  console.log("welcome hy");
} else if (name === "coder") {
  console.log("you are amazing coder");
} else {
  console.log("unknown");
}

# 9. Ternary operator: ?
# condition ? value1 : value2 ;
# true면 왼쪽에 있는것을 실행 false면 오른쪽 실행
# 간단한 것을 실행할 때 사용
console.log(name === "chy" ? "yes" : "no");

# 10. Switch statement
# 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;
}

# 11. Loops
# 괄호안이 false가 나올때까지 무한반복
let i = 3;
while (i > 0) {
  console.log(`while: ${i}`);
  i--;
}

# do while loop
# 블럭을 먼저 실행하고 싶을 때
do {
  console.log(`do while: ${i}`);
  i--;
} while (i > 0);

# for loop
for (i = 3; i > 0; i--) {
  console.log(`for: ${i}`);
}

for (let i = 3; i > 0; i = i - 2) {
  # 블럭안에 지역변수 선언해서 사용하기도 한다.
  console.log(`inline variable for: ${i}`);
}

# nested loops
# 이중 for문는 cpu에 좋지않아서 웬만하면 피하면 좋다.
for (let i = 0; i < 10; i++) {
  for (let j = 0; j < 10; j++) {
    console.log(`i: ${i}, j:${j}`);
  }
}

# break는 loop를 끝내는 것
# continue는 지금건 skip하고 계속 loop를 이어나가는 것

'공부중 > 혼자공부하는자바스크립트' 카테고리의 다른 글

자바스크립트 동작원리  (0) 2024.02.02
데이터 타입  (0) 2024.01.16
<script> async와 defer의 차이점  (0) 2024.01.11

댓글


post image post image post image post image post image post image post image post image