코딩/TIL

TIL #210131

나동 2021. 1. 31. 23:40

📚 TIL


코드숨 2주차 DAY 14, 자바스크립트 코딩의 기술

🧸 1주차 2번 과제 풀이 공부하기

계산기 과제 처리하기

 

 

형태 먼저 잡아주기 - number랑 숫자

render number에 value 클릭하면 numbervalue 넣어주기

계산기니까 숫자가 쌓이도록 기존 number 곱하기 10에 value 더하기

reset버튼 하나 추가하기 - handleClickReset render number 0으로

덧셈버튼 추가하기 handleClickOperator'+'로, 함수 rendernumber는 그대로, operator에 value 넣기

render 초기값 number 0 operator '', reset에도 ''하니까 중복됨 - InitialState로 빼서 넣어줌

함수를 그냥 넣으면 바로 실행이 되므로 () => 이렇게 넣어주어야함

operator를 누른 뒤 숫자를 누르면 따로 들어와야됨

-> operator를 누르는 순간 누적된 값을 다른 곳으로 - accumulator 넣기

초기값은 0, operator 함수에 accumulator는 넘버로, 넘버는 0으로

'=' 버튼 만들기 - operator에 따라 계산되게 - calculate 함수 만들기, 파라미터는 operator, accumulator, number

accumulator랑 number랑 계산한 값 반환되게 함수 작성

operatorFunctions로 부호마다 x와 y로 계산 기능, 비어있는 초기값, =을 눌렀을때 값 넣어주기

operatorFunctions에서 operator를 먼저 처리하고 accumulatornumber를 변수로 넘겨줌

['+', '-', '*', '/'] 배열 버튼 추가 기능도 넣어주기

값을 보여주는 거는 || 연산자로 지금 누르는 값 보여주고 없으면 기존의 값 보여주기

리팩토링 - defaultFunction으로 값이 없는 경우 반환값 넣어주기

 


 

🧸 2주차 1번 과제 풀이 공부하기

Counter 앱 만들고 파일 분리하기

 

 

컴포넌트당 하나의 파일로 분리하기

src에 Counter.jsx로 새로운 파일 만들기

export default Counter;로 다른 파일에서 쓸 수 있도록하기

모든 파일에는 React import하기

import Counter from './Counter'로 하면 가져다 쓸 수 있음

.js만 기본적으로 부르게 되어 있어서 .jsx를 붙여야 됨

붙이기 싫다면 webpack.config.js에 resolve 추가, extensions: ['.js', '.jsx'] 작성

App에서 Button, Buttons, App 빼기

index.jsx에서는 App을 가져다 씀, useState는 index에서 빼고 App에서 쓰기

Button.jsx 따로 빼주기, App에서는 Button import하기

function 앞에 export defalut를 쓰면 아래에 안써도 됨

Buttons랑 Page도 나누기, import도 알맞게 변경

index에서는 App을 가져다 쓴다는 것만 집중

App에서는 어떻게 되는지, 구성되는지는 모름. 상태관리만

Page는 어떻게 처리되는지는 모름. 어떻게 보여줄지만

Counter에서는 어떻게 보여줄지는 모름. 처리하는 것만

값 처리하기 - App에 handleClick에 increment 넘겨주기, count는 count에 increment 더하기

Counter에서 onClick에 1 넣어주기

Page에서 Buttons에 onClick 넘겨주기

Buttons는 onClick 받기, onClick에 i 주면 누르는 숫자만큼 늘어나게

Button에 onClick 받아서 처리하게 하면 작동함

속성들을 받아주고 버튼모양, 개수는 각자의 컴포넌트에서 처리

 


 

🧸 자바스크립트 코딩의 기술 스터디 1회

 

  • 주제 : 1장 변수 할당으로 의도를 표현하라
  • 시간 : 저녁 9시 10분

문제와 답

 

Q1 : scope란 무엇인가요?

A1 : 유효 범위로 변수가 사용되는 범위이다

 

Q2 : scope를 사용하는 이유

A2 : 변수의 사용 범위를 제한하기 위해서 사용

 

Q3 : scope는 언제 생성될까요?

A3 : 함수를 선언할 때 생긴다

 

Q4 : function scope와 block scope의 차이

A4 : block scope는 function scope의 부분 집합

 

Q5 : 변수 선언 시, const와 let보다 var이 권장되지 않는 이유

A5 : let과 const는 같은 이름의 변수를 다시 선언할 수 없어서 실수를 줄일 수 있다

let과 const는 블록 유효 범위를 따른다

var로 할당한 변수는 함수 내에서 마지막으로 할당한 값을 참조한다

 

Q6 : let보다 const로 변수 선언을 선호하는 이유

A6 : const는 재할당을 할 수 없어 코드값이 변하지 않는다는 점을 

 

Q7 : const로 선언된 변수의 값은 조작이 언제나 불가능한가요?

A7 : const에 배열을 할당하는 경우에 배열의 항목은 바꿀 수 있다

 

Q8 : 클로저란 무엇인가요?

A8 : 함수 안에서 사용되는 함수를 클로저 함수라고 한다.

변수는 생명주기가 끝나면 사라져야하지만 참조하고있는 함수가 있어서 사라지지 않는다.

선택값을 사용해야 할 때, private하게 만들 때 사용한다

 

Q9 : 어휘적 유효 범위 변수 선언과 블록 유효 범위 변수 선언의 변수 접근 측면에서의 차이점

A9 : 블록 유효 범위 변수를 선언한 경우에는 범위 밖에서는 접근할 수 없다

어휘적 유효 범위를 따르는 변수는 변수를 선언한 경우에는 함수 내부 어디서는 접근할 수 있다

 

Q10 : const로 선언된 배열에 push가 가능한가? 그 이유는?

A10 : push는 가능하다. const는 재할당이 되지 않는데 push는 할당이 아니기 때문

 

Q11 : 변수에 할당한 문자열에 템플릿 리터럴을 이용하려면 필요한 지정자

A11 : `${...}`

 

Q12 : 다음 코드를 실행할 시, 콘솔에 뜰 숫자

 

 

A12 : var로 변수를 선언하였을 경우 함수 내에서 마지막으로 할당한 값을 참조하므로 2가 출력된다.

 

Q13 : 다음 코드를 실행할 시, 콘솔에 뜰 숫자

 

 

A13 : 1: true, 2: false, 3: true, 4: true

1,3번은 같은 참조값을 가지고 있어서 true가 나오고

2번은 value 값이 같을 뿐 다른 참조값을 가지고 있어서 false가 나온다

4번은 obj2와 obj3이 같은 참조값을 가지고 있어서 obj3를 변경하면 obj2도 같이 변경되어 true가 나온다

 

Q14 : 이 코드는 오류없이 작동하는 코드인가? 오류가 있다면 어디서 오류가 나는지 설명하고, 작동한다면 콘솔에 어떤 출력이 나올지 설명하시오.

 

A14 : 오류가 발생하지 않는다. (엥! 오류가 발생할 줄 알았는데 뭐지!)

const로 선언하면 같은 이름의 변수로 다시 선언을 할 수 없지만

중괄호 안에서는 블록 유효 범위 변수가 되어 가능한가봐요

console.log(name)을 중괄호 안에서 실행하면 고양이가, 밖에서 실행하면 강아지가 나와요

 

문제 12번부터 14번까지는 스터디에서 다루지 않아 정답이 아닐 수 있습니다!

혹시 이 글을 보시고 제 답이 틀렸다면 알려주세요 ㅎㅎ

 

스터디 전

 

기분 이유 기대하는 것
7 대답에 자신이 없어요 질문에 답하며 아는 것 끄집어내는 연습!

 

스터디 후

 

기분 얻은 것 할 것
10 다른사람들과 같이하는 공부의 장점을 알게 되었습니다 답하지 못한 질문들 다시 공부하기

 

필기노트

 

 

응~~망인 필기 ㅋㅋㅋ

 


 

😁 오늘 한 일


 

📕 공부하기

- 오늘은 못풀었던 과제들 풀이를 보고 공부했어요

- 흠.. 진짜 이걸 혼자서는 절대 못만들었을 것 같아요

- 선생님은 엄청 쉽게 하시는데 거기까지 생각이 안들어요 ㅠ

 

👩‍🏫 스터디하기

- 오늘 첫 스터디에 참여했어요!

- 온라인이라 같이 교육을 듣는 분들을 못만났는데 온라인으로라도 보니 반가웠어요

- 스터디를 진행하니 모르는 부분을 채울 수 있고 복습도 돼서 좋아요!

- 무엇보다 사람을 못만나는데 사람들이랑 얘기하니까 좋아요ㅠ

 

🥩 오리고기먹기

- 언니와 함께하는 맛있는 외식 2탄!! 오리고기를 먹었어요

- 일산에 있는 가나안덕이라는 음식점이에요 우리가족이 제일 좋아하는 오리고기 식당!

- 오리고기를 먹고요 녹두죽을 무한으로 먹을 수 있고 고구마도 줘요! 강추입니다

- 우리 가족은 마늘도 엄청 많이 먹어요 ㅋㅋㅋ 또먹고싶다 ㅠㅠ

 

'코딩 > TIL' 카테고리의 다른 글

TIL #210202  (0) 2021.02.02
TIL #210201  (0) 2021.02.01
TIL #210130  (0) 2021.01.30
TIL #210129  (0) 2021.01.29
TIL #210128  (0) 2021.01.28