//1. String concatenation
console.log("my" + "hamzzi");
console.log("1" + 2);
console.log(`string literals: 1 + 2 = ${1 + 2}`);
//`${+}`를 하면 바로 {}안의 값까지 바로 string으로 만들어진다
//특수문자 '넣을 때 \'로 넣기
console.log("Hamzzi's babyfat");
//줄바꿈은 줄바꿈할 지점에서 \n
console.log("Hamzzi's \nbabyfat");
//2. Numeric operators
console.log(1 + 1);
console.log(1 - 1);
console.log(1 / 1);
console.log(1 * 1);
console.log(5 % 2);
console.log(2 ** 3); //2의 3승
//3. Increment and decrement operators
//Preincrement
let a = 4;
const PreIncrement = ++a;
console.log(`PreIncrement: ${PreIncrement}, a: ${a}`);
/* let a = a + 1;
PreIncrement = a*/
//postincrement
const PostIncrement = a++;
/*PostIncrement = a;
a = a + 1;*/
console.log(`PostIncrement: ${PostIncrement}, a: ${a}`);
const PreDcrement = --a;
console.log(`PreDcrement: ${PreDcrement}, a : ${a}`);
//let a = a -1; PreDcrement = a;
const PostDcrement = a--;
console.log(`PostDcrement: ${PostDcrement}, a: ${a}`);
//PostDcrement = a;, a = a-1;
// 수식 줄여쓰기
x += y; // x = x + y
x -= y; // x = x -y
x *= y; // x = x * y
x /= y; // x = x // y
//비교
a < b;
a <= b; //작거나 같다
a > b;
a >= b; //크거나 같다
//Logical operators
// ||(or)
const yeah1 = true;
const yeah2 = 3 < 1;
console.log(`or: ${yeah1 || yeah2 || check()}`);
// or 해놓은 것중 하나라도 true인 것이 있으면 거기서 실행을 멈추고 바로 true로 결론남
function check() {
for (let i = 0; i < 10; i++) {
//wasting time
console.log("으악");
}
return true;
}
//||(or) 과 &&(and) 일 때는 expression이나 function을 뒤에 두는 것이 좋다
// &&(and)
console.log(`and: ${yeah1 && yeah2 && check()}`);
/*and는 null 체크를 간단하게 할 때도 많이 쓰인다*/
// wow가 null이 아닐 때만 wow.somthing을 실행함
if (wow != null) {
wow.something;
}
// !(not) true인 것을 not true로 변경시킬 때 씀
console.log(!yeah1);
//7. equality
const StringOne = "1";
const NumberOne = 1;
// == loose eauality, with type conversion(타입 상관없이 유연하게 인정)
console.log(StringOne == NumberOne); //true
console.log(StringOne != NumberOne); // false
//''안에 있는 게 숫자니까 StringOne이나 NumberOne이나 같은거로 취급
// === strict equality, no type conversion (타입 신경써서 인정)
console.log(StringOne === NumberOne); // False
console.log(StringOne !== NumberOne); // True
//if, else if, else
const name = "Hamzzi";
if (name === "Hamzzi") {
console.log("What a cute thing!");
} else if (name === "Zzizhu") {
console.log("Go to Study right now!");
} else {
console.log("I don't know who you are!");
}
// Ternary operator ? : ? 앞에 적은 내용이 맞으면 왼쪽 거 출력, 틀리면 오른쪽거 출력
console.log(name === "Hamzzi" ? "yes" : "no");
// Switch
const what = "Hamzzi";
switch (what) {
case "Hamzzi":
console.log("Hamzzi is lovely!");
break;
case "Zzizhu":
case "Youtube":
console.log("Turn off and go to study!");
break;
default:
console.log("There are a lot of cute things in the world!");
break;
}
//elseif를 반복하게 될 경우 switch를 쓰는 것이 가독성이 더 좋다
//loops
//while 조건문이 맞을때만 반복하게 하고 싶으면 while 쓰기
let i = 5;
while (i > 0) {
console.log(`while: ${i}`);
i--;
}
//do-while do를 먼저 실행한 다음에 while 내용이 맞는지 검사
let o = 6;
do {
console.log(`do while: ${o}`);
o--;
} while (o > 0);
//for for(begin; condition; step)
for (u = 3; u > 0; u--) {
console.log(`for : ${u}`);
}
// for 안에 변수 선언해서도 사용 가능
for (let y = 9; y > 0; y = y - 3) {
console.log(`forlet y: ${y}`);
}
//nested loops for 을 연달아 계속 안에 적는 것
for (let k = 0; k < 10; k++) {
for (let e = 0; e < 10; e++) {
console.log(`k: ${k}, e: ${e}`);
}
}
뭔가 많은 걸 배운 날...머리가 터질 것 같지만 열심히 복습하는 걸로!!