this
this
는 bind
를 하거나 화살표 함수가 아닌 이상 window
를 가리킨다.call
, apply
는 함수를 실행하고 bind
는 함수를 반환한다.this
는 어떻게 호출되는가를 더 중요하게 여겼지만, 화살표 함수를 사용하면 어디에서 호출되지만 보면 된다. 호출되는 범위의 this
를 그대로 가진다. 또한, call
, apply
, bind
를 이용해서 this
를 바인딩하려고 해도 무시된다. 화살표 함수 참고|
, &
연산자를 통해 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'
for...in
혹은 for...of
를 사용하는 대신 배열이나 객체의 키 혹은 값을 순환하는 메서드를 사용해 함수형 프로그래밍을 하라.오늘부터 Spinrt 1이 종료되었고 내일부터 자료구조를 학습한다. 짧은 기간이었지만, 살짝 어렵지만 중요한 부분을 복습했고 ES6를 다뤄볼 수 있는 기회가 많았다. 또한 코드 품질에 관한 내용을 다룰 수 있어서 좋았다. vscode의 prettier와 같은 formatter extension은 설정이 제한되어 있어서 불만이 좀 있었는데, lint는 설정이 자유롭고 정말 유용하다. 자주 써먹도록 해야겠다.
시간이 남아서 알고리즘 문제를 하나 풀어봤는데, toString()
에 인자를 넣어서 진수를 바꿀 수 있는 점을 처음 알았다. convertDecimalToBinary()
함수를 만들어서 해결했었는데 쓸모 없었다. |
와 &
의 존재 또한 몰랐고 replace
에 콜백함수를 넣을 수 있다는 사실도 몰랐다. 이제라도 알았으니 다행으로 치고 앞으로 알고리즘 문제를 더 많이 풀어봐야겠다.