Code States
Front-end boost camp
Today
I
Learned
🍶 오늘 수업 끝나고 막걸리 약속 있는 4월 28일 불금, 14일차 수업 시쟉~!
function sum(x, y, z) {
return x + y + z;
}
const numbers = [1, 2, 3];
sum(...numbers) // 질문: 어떤 값을 리턴하나요?
function sum(...theArgs) {
return theArgs.reduce((previous, current) => {
return previous + current;
});
}
sum(1,2,3) // 질문: 어떤 값을 리턴하나요?
sum(1,2,3,4) // 질문: 어떤 값을 리턴하나요?
-- 1) 배열 합치기
let parts = ['shoulders', 'knees'];
let lyrics = ['head', ...parts, 'and', 'toes'];
// 질문: lyrics의 값은 무엇인가요
// 답 : ['head', 'shoulders', 'knees', 'and', 'toes']
let arr1 = [0, 1, 2];
let arr2 = [3, 4, 5];
arr1 = [...arr1, ...arr2]; // 참고: spread 문법은 기존 배열을 변경하지 않으므로(immutable), arr1의 값을 바꾸려면 새롭게 할당해야 합니다.
// 질문: arr1의 값은 무엇인가요?
// 답 : [0, 1, 2, 3, 4, 5]
-- 2) 배열 복사
let arr = [1, 2, 3];
let arr2 = [...arr]; // arr.slice() 와 유사
arr2.push(4); // 참고: spread 문법은 기존 배열을 변경하지 않으므로(immutable), arr2를 수정한다고, arr이 바뀌지 않습니다.
// 질문: arr와 arr2의 값은 각각 무엇인가요?
// 답 : [1, 2, 3] / [1, 2, 3, 4]
let obj1 = { foo: 'bar', x: 42 };
let obj2 = { foo: 'baz', y: 13 };
let clonedObj = { ...obj1 };
let mergedObj = { ...obj1, ...obj2 };
// 질문: clonedObj와 mergedObj의 값은 각각 무엇인가요?
// 답 : {foo: 'bar', x: 42} / {foo: 'baz', x: 42, y: 13}
//// 주의! fee 의 값이 다른 속성 둘이 있어서 앞에 온 fee의 밸류 bar는 baz에 덮혔다!
function myFun(a, b, ...manyMoreArgs) {
console.log("a", a);
console.log("b", b);
console.log("manyMoreArgs", manyMoreArgs);
}
myFun("one", "two", "three", "four", "five", "six");
// 질문: 콘솔은 순서대로 어떻게 찍힐까요?
// 답 : a one / b two / manyMoreArgs ['three', 'four', 'five', 'six']
//// 주의 ! nanyMoreArgs는 전체가 아님!
const [a, b, ...rest] = [10, 20, 30, 40, 50];
// 질문: a, b, rest는 각각 어떤 값인가요?
// 답 : a = 10/ b = 20/ rest = [30, 40, 50]
const {a, b, ...rest} = {a: 10, b: 20, c: 30, d: 40}
// 질문: a, b, rest는 각각 어떤 값인가요?
// 답 : 10/ 20 / {c: 30, d: 40}
function whois({displayName: displayName, fullName: {firstName: name}}){
console.log(displayName + " is " + name);
}
let user = {
id: 42,
displayName: "jdoe",
fullName: {
firstName: "John",
lastName: "Doe"
}
};
whois(user) // 질문: 콘솔에서 어떻게 출력될까요?
// 답 : jdoe is John
function sum (x, y) {
return x + y;
}
const subtract = function (x, y) {
return x - y;
}
const multiply = (x, y) => {
return x * y;
}
const square = x => { return x * x }
// 위 코드와 동일하게 동작합니다.
const square = ( x ) => { return x * x }
// 단, 매개변수가 없는 경우엔 소괄호를 생략할 수 없습니다.
const greeting = () => { return 'hello world' }
const squre = x => x * x
// 위 코드와 동일하게 동작합니다.
const square = x => { return x * x }
// 위 코드와 동일하게 동작합니다.
const square = function (x) {
return x * x
}
expert(테스트하는값).기대하는조건
expect(isEven()).to.be.true => 'isEven(3)'의 결과값은 참(true)이어야 한다.
expect(1 + 2).to.equal(3) => 'sum(1, 2)의 결과값은 3과 같아야(equal)한다.
위 새로운 개념과 함께 약 50문제의 문제를 풀게 되었다. 2시부터 6시까지 중간중간 쉬는 시간, 각자 생각해보는 시간 제외 열띤 토론과 의견공유로 절반 정도를 풀었는데, 아직 정리는 안됨 ^^ㅋ
주말 동안 페어분과 다시 디코로 만나서 문제를 풀기로 했음 + 정리까지
어제 스코프와 클로저 개념때문에 진짜 너무 어려워서 아씨.. 마케팅 다시해야하나? 생각이 잠시 들고 소파에 얼굴 처박고 우울에 잠겨있기도 했다..;; 근데 결국 10시쯤 진짜 내게 남은 열 중에 1정도 수치의 의욕을 이끌어 복습 & 나의 조력자 척척 AI박사님에게 과외를 받고 아 이게 이거였구나!!!!!!!! 라고 90% 이해할 수 있었음.
그리고 오늘 페어 수업에서 그 안에서 헷갈리는 요소들을 내 척척 공대학사 페어 선생님이 쉽고 명확하게 알려주고 이끌어 주어서 거진 다 이해가 된 것 같다. 댓스,, 굿,, b
주말의 할일 : 반복문(완료), 배열, 객체 정리 못한 부분 업데이트하기, 오늘 해당 부분 업데이트하기(월요일도 같은 수업이라 패스), 오운완 헬씨어 월드 업데이트하기... 겁나 바쁠 것 같네잉.. 🫠
힘드러도,, 포기하지,, 말자,,!
▲ FYI : 우리집 강아지 이름은 '말자'다.