2020.06.10(수) Sprint 1. Immersive Prep

Park, Jinyong·2020년 6월 10일
0

Today I Learned

this, callback, binding을 복습했다.

  • this
    • 호출된 함수가 실행할 때 가리키는 특정 객체
    • 함수가 실행될 때 실행되는 방식에 따라 결정된다.
  • callback
    • 콜백함수로 전달된 함수의 thisbind를 하거나 화살표 함수가 아닌 이상 window를 가리킨다.
  • binding
    • call, apply는 함수를 실행하고 bind는 함수를 반환한다.

화살표 함수를 사용할 때 this가 무엇을 가리키는지 배웠다.

  • 기존의 this는 어떻게 호출되는가를 더 중요하게 여겼지만, 화살표 함수를 사용하면 어디에서 호출되지만 보면 된다. 호출되는 범위의 this를 그대로 가진다. 또한, call, apply, bind를 이용해서 this를 바인딩하려고 해도 무시된다. 화살표 함수 참고

알고리즘 문제 하나를 풀었다.(programmers.co.kr)

  • |, & 연산자를 통해 or 혹은 and 연산을 할 수 있다.
  • Number.toString() 메서드에 인자를 넣으면 해당 진수로 변환할 수 있다.
  • String.replace() 메서드에 두 번째 인자는 콜백함수 또한 가능하다.
let num1 = 30;
let num2 = 9;

console.log(num1.toString(2)); // '11110'
console.log(num2.toString(2)); // '1001'

console.log((num1 | num2).toString(2)); // '11111'
console.log((num1 & num2).toString(2)); // '1000'

let binary = '10101';
console.log(binary.replace(/[10]/g, digit => Number(digit) ? 'O' : 'X')); // 'OXOXO'

Airbnb Coding Style을 둘러보았다. 저장소

  • for...in 혹은 for...of를 사용하는 대신 배열이나 객체의 키 혹은 값을 순환하는 메서드를 사용해 함수형 프로그래밍을 하라.
  • generators는 ES5로 잘 변환되지 않으니 사용하지 말라.

오늘부터 Spinrt 1이 종료되었고 내일부터 자료구조를 학습한다. 짧은 기간이었지만, 살짝 어렵지만 중요한 부분을 복습했고 ES6를 다뤄볼 수 있는 기회가 많았다. 또한 코드 품질에 관한 내용을 다룰 수 있어서 좋았다. vscode의 prettier와 같은 formatter extension은 설정이 제한되어 있어서 불만이 좀 있었는데, lint는 설정이 자유롭고 정말 유용하다. 자주 써먹도록 해야겠다.

시간이 남아서 알고리즘 문제를 하나 풀어봤는데, toString()에 인자를 넣어서 진수를 바꿀 수 있는 점을 처음 알았다. convertDecimalToBinary() 함수를 만들어서 해결했었는데 쓸모 없었다. |&의 존재 또한 몰랐고 replace에 콜백함수를 넣을 수 있다는 사실도 몰랐다. 이제라도 알았으니 다행으로 치고 앞으로 알고리즘 문제를 더 많이 풀어봐야겠다.

0개의 댓글