https://programmers.co.kr/learn/courses/30/lessons/12947
function solution(x) {
var answer = true;
let sum = 0;
for (let i = 0; i < String(x).length; i++) {
sum += String(x);
}
if (sum % x !== 0) {
answer = false;
}
return answer;
}
- 5번줄 sum += String(x); 에서 그 숫자의 각각의 자릿수를 더해줘야하는데 [i] 인덱스 정보 넣는걸 깜빡했다. 또 숫자를 합치려면 스트링으로써 합치는게 아니라 다시 number로 형변환을 해줘야했다.
- 7번줄 if 조건문에서 하샤드 수의 정의는 정수 x를 x의 자릿수 합으로 나눠주는 건데 반대로 적었다
function solution(x) {
var answer = true;
let sum = 0;
for (let i = 0; i < String(x).length; i++) {
sum += Number(String(x)[i]);
}
if (x % sum !== 0) {
answer = false;
}
return answer;
}
ES6에 새로 도입된 화살표 함수는 실행 컨텍스트 생성 시 this를 바인딩하는 과정이 제외됨. 즉 이 함수 내부엔 this가 아예 없으며, 접근하고자 하면 스코프체인상 가장 가까운 this에 접근함.
상위 컨텍스트의 this를 내부함수나 콜백 함수에 전달하기
별도의 인자로 this를 받는 경우(콜백 함수 내에서의 this)
콜백 함수를 인자로 받는 메서드 중 일부는 추가로 this로 지정할 객체(thisArg)를 인자로 지정할 수 있는 경우가 있음(MDN문서에서 확인가능).
이런 형태는 여러 내부 요소에 대해 같은 동작을 반복하는 배열 메서드에 많이 있음.
ex(Array에서의 forEach, map, filter, some, every, find, findIndex, flatMap, from
Set에서의 forEach
Map에서의 forEach) > Set과 Map은 cs6에서 새로 등장한 Method
콜백 함수 내부의 this에 다른 값을 바인딩을 쉽게 하기위해 ES5에서 bind메서드를 이용하는 방법이 생겼다.
클로저란 어떤 함수 A에서 선언한 변수 a를 참조하는 내부함수 B를 외부로 전달할 경우 A의 실행 컨텍스트가 종료된 이후에도 변수 a가 사라지지 않는 현상
코어자바스크립트 읽다가 클로저부분 이해가 힘들어서 보게됨
기초강좌 7강까지 봄