전체 글
-
-
전역변수JavaScript 2021. 12. 18. 13:52
변수의 생명주기 # 지역 변수의 생명주기 변수는 선언에 의해 생성되고 할당을 통해 값을 얻는다. 생성되고 소멸되는 생명주기(life cycle)가 있다. function foo() { var x = 'local'; console.log(x); // local return x; } foo(); console.log(x); // ReferenceError : x is not defined; 지역 변수 x는 foo 함수가 호출되기 이전까지는 생성되지 않는다. foo 함수를 호출하지 않으면 함수 내부의 변수 선언문이 실행되지 않기 때문이다. 변수 선언은 선언문이 어디에 있든 상관없이 가장 먼저 실행된다. 런타임 이전 단계에서 자바스크립트 엔진에 의해 먼저 실행된다. 하지만 위의 말은 전역 변수에 한정된 것이다...
-
스코프JavaScript 2021. 12. 17. 23:45
스코프(scope 유효범위)는 자바스크립트를 포함한 모든 프로그래밍 언어의 기본적이며 중요한 개념이다. 스코프는 변수 그리고 함수와 깊은 관련이 있다. 변수는 자신이 선언된 위치에 의해 자신이 유요한 번위, 즉 다른 코드가 변수 자신을 참조할 수 있는 번위가 결정된다. 변수뿐만 아니라 모든 식별자가 그렇다. 다시 말해, 모든 식별자(변수 이름, 함수 이름, 클래스 이름 등)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정된다. 이를 스코프라 한다. 즉 스코프는 식별자가 유요한 범위를 의미한다. 다음 코드가 어떻게 동작할지 생각해 보자 var x = 'global'; function foo() { var x = 'local'; console.log(x); // 1 ..
-
함수 표현식JavaScript 2021. 12. 16. 22:21
자바스크립트의 함수는 객체 타입의 값이다. 자바스크립트의 함수는 값처럼 변수에 할당할 수도 있고 프로퍼티 값이 될 수도 있으며 배열의 요소가 될 수도 있다. 이처럼 값의 성질을 갖는 객체를 일급 객체라 한다. 자바스크립트의 함수는 일급 객체다 함수가 일급 객체라는 것은 함수를 값처럼 자유롭게 사용할 수 있다는 의미다. 함수는 일급 객체이므로 함수 리터럴로 생성한 함수 객체를 변수에 할당할 수 있다. 이러한 함수 정의 방식을 함수 표현식(function expression)이라 한다. // 함수 표현식 var add = function(x, y) { return x + y; }; # 함수 생성 시점과 함수 호이스팅 // 함수 참조 console.dir(add); // f add(x, y) console.d..
-
API 란 무엇인가?Java 2021. 12. 7. 22:43
프로그래밍을 하다보면 API라는 것을 많이 접하게 된다. API에 대해서 확실히 정리하자. api는 애플리케이션 소프트웨어를 구축하고 통합하기 위한 정의 및 프로토콜로 세트로, 애플리케이션 프로그래밍 인터페이스(Application Porgramming Interface)이다. 라이브러리와 종종 헷갈리곤 하는데, 엄밀하게 따지면 서로 다르다. API가 단순히 컴퓨터공학 분야의 추상적인 개념이라면 라이브러리는 이러한 API들을 기반으로 개발자들에게 기능을 제공할 수 있도록 실제 구현된 구현체라고 볼 수 있다. API는 흔히 function, method 또는 operation 등으로 불리는 소프트웨어의 컴포넌트의 기능, 입력, 출력, 그리고 이에 사용되는 자료형으로 표현된다. API는 어디까지나 사양(sp..
-
함수(2)JavaScript 2021. 10. 22. 22:33
#함수 생성 시점과 함수 호이스팅 // 함수 참조 console.dir(add); // f add(x, y) console.dir(sub); // undefined // 함수 호출 console.log(add(2, 5)) // 7 console.log(sub(2, 5)) // TypeError : sub is not a function // 함수 선언문 function add(x, y) { return x + y; } // 함수 표현식 var sub = funtion (x, y) { return x - y; }; 위와 같이 함수 선언문으로 정의한 함수는 함수 선언문 이전에 호출할 수 있다. 그러나 함수 표현식으로 정의한 함수는 함수 표현식 이전에 호출할 수 없다. 이는 함수 선언문으로 정의한 함수와 함수..
-
함수(1)JavaScript 2021. 10. 21. 00:18
# 함수란? 함수는 자바스크립트에서 가장 중요한 핵심 개념이다. 자바스크립트의 핵심 개념인 스코프, 실핸 컨텍스트, 클로저, 생성자 함수에 의한 객체 생성, 메서드, this, 프로토타입, 모듈화 등이 모두 함수와 깊은 관련이 있다. 함수는 자바스크립트를 정확하게 이해하고 사용하기 위한 핵심중의 핵심이다. 수학의 함수는 "입력(input)을 받아 출력(output)"을 내보내는 일련의 과정이다. 예를 들어, f(x, y) = x + y 라는 함수를 정의하고 이 함수에 두 개의 입력 2, 5를 전달하면 함수는 정의된 일련의 과정, 즉 x + y를 실행하여 7을 출력한다. 함수는 마치 재료를 투입받아 제품을 생산하는 기계와 같다. 프로그래밍 언어의 함수도 수학의 함수와 같은 개념이다. 예제) // f(x, ..
-
알고리즘(문제 해결 과정)이란 무엇이고 어떻게 하는 것인가?알고리즘-자료구조 2021. 10. 20. 23:56
저명한 양자 물리학자인 리처드 파인만이 처음 사용했다고 알려진 이 알고리즘은 강력하고 문제 해결에 필수적인 요소들을 모두 담고 있다. 파인만은 이 알고리즘을 이용하여 양자역학의 어려운 문제들을 해결했다고 한다. 1. 칠판에 문제를 적는다. 2. 골똘히 생각한다. 3. 칠판에 답안을 적는다. 반쯤 농담인 말이지만 이 알고리즘에서도 우리가 배울 만한 점이 있다. 그 첫 번째는 바로 문제 해결 과정을 단계 별로 나누었다는 것이다. 문제 해결 과정을 단계별로 나눈다는 아이디어는 별 것 아닌 것 같지만 굉장히 강력하다. 문제를 해결하기 위해 거쳐 가야 하는 과정들을 세분화함으로써, 어디가 부족하고, 어디를 개선해야 하는지 판단할 수 있게 된다. 파인만 알고리즘에서 우리가 배울 수 있는 또 다른 교훈은 문제를 적는..