30일차 - 2022.03.30

오늘 공부한 내용 요약

this에 대해(2)


어제 this의 값은 함수를 호출하는 방법에 따라 값이 결정된다는걸 학습함

  • this는 일반함수와 화살표 함수의 큰 차이점 중 하나라고 함.

  • 화살표 함수는 자신의 상위 함수의 this를 상속 받음. 
    위의 이유는 화살표 함수를 사용하면 자동으로 bind가 되기 때문.

a=> this.b 
와 
function (a) {return this.b}.bind(this) 는 같다
  • bind메서드는 this 값이 어떻게 호출되었는지 상관없이 설정할수 있음 / 인자로 받은 걸 영구적으로 고정가능
  • bind 함수로 컨텍스트를 고정하면 그 뒤에 call, apply등을 사용하여 다른 컨텍스트를 지정하더라도 최초에 바인드된 컨텍스트가 바뀌지 않음

Baekjoon에서 문제풀이

문제 : 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.
첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

풀이

if문을 사용해

if (a >= 90 && a <=100) {
  console.log('A');
} else if (a>=80 && a<=89) {
  console.log('B');
} else if (a>=70 && a<=79) {
  console.log('C');
} else if (a>=60 && a<=69) {
  console.log('D');
} else {
  console.log('F');
}

을 만드는건 간단하나 앞의 문제들과 같이 처음에 선언해야하는 값의 범위설정과 선언하는 방법을 틀리고 있는것 같다.
숫자형으로 넣어줘야 하는데 number보다는 parseInt를 사용해주는게 좋을거 같아

let a;
a = parseInt(a);

if(a >=0 && a<100) {
if (a >= 90 && a <=100) {
  console.log('A');
} else if (a>=80 && a<=89) {
  console.log('B');
} else if (a>=70 && a<=79) {
  console.log('C');
} else if (a>=60 && a<=69) {
  console.log('D');
} else {
  console.log('F');
}
}

이런식으로 시도했는데 오답.
근본적인 선언 및 기초부분을 다시 공부해야 겠음.


마무리

대부분의 baekjoon문제에서 모두 같은 부분에서 막힌거 같은데 더 노력요망.


위의 내용은 공부중 본인이 이해한 내용으로 몇몇 틀린 내용이 있을 수 있습니다.
회독중 발견시 수정하겠습니다

좋은 웹페이지 즐겨찾기