728x90
이번 주 목표 Weekly Plan
짧은 산책 기획
오늘 목표 Daily Plan
짧은 산책 기획
수업 : javascript 복습
오늘 한 것 Done Today
수업 : javascript 복습
1. console.log
// javascript에서는 console.log로 디버깅
console.log("Hello World");
console.log("Hello World");
// 백틱을 사용하면 문자열 안에 변수를 넣을 수 있음
var world = "world";
console.log(`Hello ${world}`);
2. 문자열
console.log(23 + 45);
console.log('this is "string"'); // \를 사용하여 따옴표 출력 가능
// 템플릿 문자열
console.log(`52 + 45 = ${52 + 45}`);
console.log("Hello" + "javascript");
// 줄바꿈
console.log("Hello \n World");
// 탭
console.log("Hello \t World");
3. 변수와 상수
let pi; // 변수 선언
// 변수는 재할당이 가능하다.
// 상수는 재할당이 불가능하다.
console.log(pi); // undefined
pi = 3.14; // 재할당
console.log(pi); // 3.14
// 상수
const PI = 3.141592; // 상수는 재할당이 불가능
console.log(PI); // 3.141592
PI = 2.78;
console.log(PI); // TypeError: Assignment to constant variable.
4. 비교 연산자
console.log(52 > 52); // false
console.log(52 >= 52); // true
console.log(45 == 52); // false
console.log(45 != 52); // true
5. 논리 연산자
console.log(52 >= 52 && 52 > 52) // true & false => false
console.log(52 >= 52 || 52 > 52) // true || false => true
6. 증감 연산자
// 증감 연산자
let num = 1;
console.log(num); // 1
num++; // num = num + 1
console.log(num); // 2
num--; // num = num - 1
console.log(num); // 1
7. 타입 검사
console.log(typeof 10); // number
console.log(typeof "Hello"); // string
console.log(typeof true); // boolean
console.log(typeof function () {}); // function
console.log(typeof {}); // object
let a = 2.4444;
console.log(typeof a); // number
8. 문자열로 바꾸기
console.log(String(52));
console.log(typeof String(52)); // string
console.log(typeof (52 + "")); // string
console.log(typeof `${52}`); // string
9.형변환
// 형변환
console.log(typeof Number("45")); // number
console.log(typeof parseInt("45")); // number
console.log(typeof parseFloat("45.23")); // number
10. isNaN
console.log(isNaN(Number("Hello"))); // true
11. 동등연산자 일치연산자
console.log(`50 == "50" : ${50 == "50"}`); // true 동등연산자
console.log(`50 == "50" : ${50 === "50"}`); // false 일치연산자
12. if문
const date = new Date();
if (date.getHours() < 12) {
console.log(`오전입니다 : ${date.getHours()}시`);
} else if (date.getHours() >= 12) {
console.log(`오후입니다 : ${date.getHours()}시`);
} else {
console.log(`나머지 : ${date.getHours()}시`);
}
const date = new Date();
const hour = date.getHours();
if (hour < 11) {
console.log(`아침 : 오늘 날짜는 ${date} 현재 시간은 ${hour}시 입니다.`);
} else {
if (hour < 15) {
console.log(`점심 : 오늘 날짜는 ${date} 현재 시간은 ${hour}시 입니다.`);
} else {
console.log(`저녁 : 오늘 날짜는 ${date} 현재 시간은 ${hour}시 입니다.`);
}
}
13. 객체의 특성
const aa = {};
aa["hour"] = hour;
console.log(aa);
const bb = { name: "lee" };
aa = bb;
// TypeError: Assignment to constant variable.
14. switch case 문
const input = 12;
switch (input % 2) {
case 0:
console.log(`짝수`);
break;
case 1:
console.log(`홀수`);
break;
default:
console.log(`숫자`);
}
15. 삼항연산자
let test;
console.log(typeof test);
test = typeof test != "undefined" ? test : "initial";
console.log(test);
16. while문
let arr = [5, 23, "hello", true, "world", -9];
let i = 0;
while (i < arr.length) {
console.log(` ${i} => ${arr[i]}`);
i++;
}
17. for문
let arr = [5, 23, "hello", true, "world", -9];
for (let i = 0; i < arr.length; i++) {
console.log(`${i} => ${arr[i]}`);
}
18. for in 문
let arr = [5, 23, "hello", true, "world", -9];
for (i in arr) {
console.log(`${i} => ${arr[i]}`);
}
19. for of 문
let arr = [5, 23, "hello", true, "world", -9];
for (element of arr) {
console.log(`${element}`);
}
20. break문
멈추기
let arr = [5, 23, "hello", true, "world", -9];
for (i in arr) {
if (typeof arr[i] == "string") {
break;
}
console.log(`${arr[i]}`); // 5. 23
}
21. continue문
건너뛰기
for (i in arr) {
if (typeof arr[i] == "string") {
continue;
}
console.log(`${arr[i]}`);
22. map 함수
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const arr2 = arr.map((num) => num * 2);
const arr3 = arr.map(function (num) {
return num * 2;
});
23. filter 함수
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const arr2 = arr.filter((x) => x % 2 == 0);
console.log(arr2);
24. forEach 함수
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
arr.forEach((num, i) => {
console.log(`${num} ${i}`);
})
25. push
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
arr.push(11);
arr.push(12);
arr.push(13);
arr.forEach((num, i) => {
console.log(`${num} ${i}`);
});
26. 익명함수
function add1(x, y) {
console.log(`${x} ${y}`);
const r = x + y;
return r;
}
console.log(`add result => ${add1(11, 22)}`);
const add2 = function (x, y) {
console.log(`add2 x : ${x} y: ${y}`);
const r = x + y;
return r;
}; // 익명 함수
console.log(`add2 result => ${add2(11, 22)}`);
const add3 = (x, y) => {
console.log(`add3 x : ${x} y: ${y}`);
const r = x + y;
return r;
}; // 익명 함수
console.log(`add3 result => ${add2(11, 22)}`);
27. 콜백 함수
function tentimes(cb) {
for (let i = 0; i < 10; i++) {
cb(i);
}
}
tentimes(function (i) {
console.log(`call this function [${i}]`);
});
28. setTimeout setInterval
console.log("begin");
setTimeout(() => {
console.log("1초뒤에 호출");
}, 1000); // ms 단위
console.log("end");
setInterval(() => {
console.log("0.5초 간격으로 호출");
}, 500);
29. 객체
let personInfo = {
name: "lee",
age: 55,
address: "서울 금천구 독산동 123",
hobby: ["독서", "등산", "낚시", "넷플릭스"],
};
console.log(personInfo);
console.log(JSON.stringify(personInfo["name"]));
console.log(personInfo.age);
console.log("---------------");
personInfo["gender"] = "M";
console.log(personInfo);
personInfo["address"] = "서울 양천구 신정동"; // 객체 value 업데이트
// 기존 키에 값을 할당하면 update
// 기존에 없는 키를 추가하는 경우 insert
30. 객체 순회
let personInfo = {
name: "lee",
age: 55,
address: "서울 금천구 독산동 123",
hobby: ["독서", "등산", "낚시", "넷플릭스"],
};
for (let key in personInfo) {
console.log(`${key} => ${personInfo[key]}`);
}
console.log("----------");
console.log(`key list : ${Object.keys(personInfo)}`);
Object.keys(personInfo).forEach((key) => {
console.log(`${key} => ${personInfo[key]}`);
});
const posts = [
{
title: "Test Title",
content: "Test Content",
author: { name: "lee", id: 1, age: 25 },
},
{
title: "Test Title2",
content: "Test Content2",
author: { name: "hong" },
},
{
title: "Test Title3",
content: "Test Content3",
},
];
posts["data"].forEach((item) => {
if ("author" in item) {
console.log(item[author][name]);
}
console.log("====================");
});
31. try-catch
const posts = [
{
title: "Test Title",
content: "Test Content",
author: { name: "lee", id: 1, age: 25 },
},
{
title: "Test Title2",
content: "Test Content2",
author: { name: "hong" },
},
{
title: "Test Title3",
content: "Test Content3",
},
];
posts["data"].forEach((item) => {
try {
if ("author" in item) {
console.log(item[author][name]);
}
console.log("====================");
} catch (error) {
console.log(error);
} finally {
console.log("function closed");
}
});
32. callback
let data;
// from remote mock
const fetchData = (cb) => {
// cb : handleData
setTimeout(() => {
data = {
name: "lee",
age: 15,
};
cb(data);
}, 2000);
};
const handleData = (data) => {
// callback function
console.log(`form callback : ${JSON.stringify(data)}`);
};
fetchData(handleData);
33. Promise
const fetchData = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
const success = false;
const data = {
name: "lee",
age: 15,
};
const error = {
message: "error 505",
};
if (success) {
resolve(data);
} else {
reject(error);
}
}, 2000);
});
};
const result = fetchData();
result
.then((data) => {
// resolve
console.log("resolve", data);
})
.catch((error) => {
// reject
console.log("reject", error);
});
34. async await
const fetchData = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
const success = true;
const data = {
name: "lee",
age: 15,
};
const error = {
message: "error 505",
};
if (success) {
resolve(data);
} else {
reject(error);
}
}, 2000);
});
};
async function getData() {
try {
const data = await fetchData();
console.log(`fetchData result => ${data}`);
} catch (error) {
console.log(error);
}
}
getData();
KPT
Keep
열심히 하였다
Problem
집에서는 열심히 못하는 것
Try
집에서도 열심히 하기
소감 Diary
조금씩 나아지고 있다 힘내자
'verdantjuly > Today I Learned' 카테고리의 다른 글
TIL 20241025 (0) | 2024.10.31 |
---|---|
TIL 20241024 (0) | 2024.10.25 |
TIL 20241022 (1) | 2024.10.22 |
TIL 20241021 (0) | 2024.10.21 |
TIL 20240926 (0) | 2024.09.27 |