그동안 티스토리에 일기 형식으로 나만 알아보기 쉬운 TIL 블로그를 작성해왔다. 그러던 중 2주차 금요일에 진행된 Course Reflection 시간을 통해 블로그의 중요성을 실감하며 조금 더 개발 블로그다운 만들어보기 위해 티스토리에서 벨로그로 넘어오기로 하였다. 3주차부터는 조금 더 자세하게 내가 무엇을 배웠는지에 대하여 더 자세하게 써볼 예정이다.
- 배열 메소드
- 재귀함수
- Algorithm & better code
- Command line
- Git
- Scope
- Closer
- 객체 지향 프로그램
- 매개변수 복습
재귀함수란?
함수가 자기 자신을 호출하는 함수이고, 이러한 행위를 가리켜 재귀 호출(recursive call)이라고 한다.
언제 쓰이는가?
알고리즘이란?
어떤 값을 입력받아 다른 값을 출력하는 계산 절차
알고리즘 작성법의 중요성
Global Scope
변수가 함수 바깥이나 중괄호 {} 바깥에 선언되었다면 전역 스코프에 정의된다.
전역변수를 선언하면, 코드 모든 곳에서 해당 변수 사용이 가능하다. (함수포함)
하지만 전역 스코프에 변수를 선언할 수 있어도 그러지 않는 것이 좋다. 왜냐하면 두 개 이상의 변수가 충돌할 수 있기 때문이다. 만약 변수를 const 나 let을 사용하여 선언했다면 이름에 충돌이 발생할 때 마다 에러가 발생한다.
만약 var을 사용하여 변수를 선언했다면 두번째 변수가 첫번째 변수를 덮어 쓰게 된다. 이러면 디버깅이 어려워지기 때문에 사용을 지양한다.
Local Scope
코드의 특정 부분에서만 사용할 수 있는 변수를 지역 변수라고 하고, 변수는 지역 스코프에 있다.
지역변수는 함수 내에서 전역변수보다 더 높은 우선 순위를 가진다.
자바스크립트에는 함수 스코프 (function scope)와 블럭 스코프 (block scope) 두가지 지역변수가 존재한다.
함수 스코프
블럭 스코프
클로저란 Javascript의 유효범위, Scope를 이용하여 생명 주기가 끝난 외부함수의 변수를 참조하는 방법이다.
외부함수가 종료되더라도 내부함수가 실행되는 상태이면 내부함수에서 참조하는 외부 함수는 닫히지 못한다.
따라서 외부 함수가 종료되기 위해서는 내부함수가 종료되어야하기 때문에 클로저(Closure)라고 불리운다
언제 사용하는가?
클로저를 사용하는 이유는 전역 변수의 오/남용이 없는 깔끔한 코드를 작성할 수 있기 때문이다.
클로저에서 주의 할점은 내부함수에서 참조하는 외부 함수의 변수는 복사(Clone)본이 아닌 값을 직접 참조한다는 것이다.
외부 함수를 실행하면 내부 함수가 리턴된다.
커링: 함수 하나가 n개의 인자를 받는 대신, n개의 함수를 만들어 각각 인자를 받게 하는 방법.
외부 함수의 변수가 저장되어 마치 재사용이 계속 가능한 템플릿 함수처럼 사용 가능.
클로저 모듈 패턴 : 변수를 스코프 안쪽에 가두어 함수 밖으로 노출 시키지 않는 방법 - 클로저를 이용하여 외부 함수의 변수를 private으로 지정할 수 있다.
스코프와 클로져는 가장 이해가 어려웠던 부분이다. 글을 작성하는 이순간에도 만약 아리송한 것이 사실이다. 계속 개념과 예제를 통해서 봐야할 것 같다.
let arr = ['code' , 'states' , 'pre'] let arr = new Array('code', 'states', 'pre')