
DOM Document Object Model의 약자로, HTML 요소를 Object(JavaScript Object)처럼 조작(Manipulation)할 수 있는 Model입니다. 즉, 여러분이 JavaScript를 사용할 수 있으면, DOM으로 HTML을 조작할 수 있습니다. CRUD를 먼저 이해하는 것이 새로운 언어를 가장 빠르게 학습하는 방법입니다. (CRUD를 이해한 다음에는 세세한 메서드들을 알아야 합니다.) document 객체를 통해서 HTML 엘리먼트를 만들고(CREATE), 조회하고(READ), 갱신하고(UPDATE), 삭제하는(DELETE) 방법을 학습합니다. DOM에는 HTML에 적용(APPEND)하는 메서드가 따로 있으니 주의. Create document.createElement..

Koans는 불교에서 유래된 단어로, 결론을 내리기 전에 이게 왜 맞는지 깊게 고민한다는 의미를 가지고 있다고 합니다. 답이 미리 제시되어 있기 때문에 고민 없이 풀면, 큰 어려움 없이 전부 다 풀 수 있습니다. 하지만 그게 왜 정답인지 깊게 고민해 보는 시간을 갖지 않는다면 충분히 성장하기 어려울 것입니다. Koans 문제 중에는 학습하지 않은 개념도 의도적으로 포함되어 있습니다. 페어와 함께 깊게 고민하고, 정답을 설명할 수 있도록 연습해 보세요. 헷갈렸던 부분 it("lexical scope와 closure에 대해 다시 확인합니다.", function () { let age = 27; let name = "jin"; let height = 179; function outerFn() { let age..
모듈 패턴 모듈 패턴은 클래스를 모방해서 관련이 있는 변수와 함수를 모아 즉시 실행 함수로 감싸 하나의 모듈을 만든다. 모듈 패턴은 자바스크립트의 강력한 기능인 클로저를 기반으로 동작한다. 모듈 패턴의 특징은 전역변수의 억제와 캡슐화 구현이다. 전역변수 억제와 캡슐화 구현을 위해 클로저를 기반으로 관련이 있는 변수, 함수들을 즉시 실행 함수로 감싼 아이. 나는 클로저에 관한 개념을 이미 공부하고 정리하여 이해하고 있다. 바로 다음 내용으로 가보자. 캡슐화 캡슐화는 객체의 상태 (state)를 나타내는 프로퍼티와 프로퍼티를 참조하고 조작할 수 있는 동작인 메서드를 하나로 묶는 것을 말한다. 캡슐화는 객체의 특정 프로퍼티나 메서드를 감출 목적으로 사용하기도 하는데 이를 정보 은닉 (information hi..

코드가 어디서 실행되며 주변에 어떤 코드가 있는지를 렉시컬 환경 (lexical environment)이라 부른다. 즉, 코드의 문맥은 렉시컬 환경으로 이뤄진다. 이를 구현한 것이 실행 컨텍스트 (execution context)이며, 모든 코드는 실행 컨텍스트에서 평가되고 실행된다. (실행 컨텍스트는 나중에 따로 정리하는 시간을 가져보자) 렉시컬 환경 (lexical environment) 스코프 체인은 실행 컨텍스트의 렉시컬 환경을 단방향으로 연결한 것이다. 전역 렉시컬 환경은 코드가 로드되면 곧바로 생성되고 함수의 렉시컬 환경은 함수가 호출되면 곧바로 생성된다. 스코프는 네임 스페이스다. (전역 스코프와 지역 스코프) 함수는 중첩될 수 있으므로 함수의 지역 스코프도 중첩될 수 있다. 이는 스코프가 ..

즉시실행함수 함수 정의와 동시에 즉시 호출되는 함수 즉시 실행 함수는 단 한 번만 호출되며 다시 호출할 수 없다 let funcNow = (function() { let a = 3; let b = 5; return a * b; })(a, b); 즉시 실행 함수 내에 코드를 모아 두면 혹시 있을 수도 있는 변수나 함수 이름의 충돌을 방지할 수 있다 재귀 함수 함수가 잦기 자신을 호출하는 것을 재귀 호출이라 한다. 재귀 함수는 자기 자신을 호출하는 행위, 즉 재귀 호출을 수행하는 함수를 말한다. 재귀 함수를 사용하면 반복문 없이 반복되는 처리를 구현할 수 있다. 예를 들어 팩토리얼은 재귀 함수로 간단히 구현할 수 있다. function factorial(n) { if (n