Programming (477) 썸네일형 리스트형 7. Javascript 함수 (5) - 즉시 실행 함수란 즉시 실행 함수의 사용법 즉시 실행 함수(immediate function)는 함수를 정의하는 동시에, 바로 실행하는 함수입니다. 함수를 정의(선언)한 다음 해당 함수에 필요한 인자 값을 통해 호출하는 절차를 거치지 않는다는 이야기죠. 우선은 이 즉시 실행 함수의 작성 방법을 살펴보도록 하겠습니다. (function (name) { // 익명, 기명함수 모두 가능 console.log(name); // 선언문 })('John'); // 인자 값의 전달 name 파라미터를 받아 출력하는 임의의 익명함수를 선언해 보았습니다. 그리고 즉시 실행 함수 형태로 선언 즉시 출력하였습니다. 자세히 살펴보면 함수 리터럴 양 옆에 또 하나의 괄호 '( )'가 추가되었습니다. 그리고 맨 마지막에는 일반적인 함수의 호출 때.. 7. Javascript 함수 (4) - 콜백 함수란 콜백 함수(call-back function) 드디어 문제의 콜백 함수를 다룰 때가 왔습니다. 우선, 콜백 함수는 단 한 문장으로 쉽게 정의하기보다는 여러 가지 개념이 한데 어우러져 이해해야 하는 개념이니, 차근차근 아티클을 읽고 다른 코드 예시나 구글링을 통해 여러 개념을 반복해서 접해봅시다. 끈기 있게 공부하는 것이 중요합니다. 우선, 콜백 함수를 사용한다는 것은 입출력 모델(I/O model)의 관점에서 봤을 때 Event Driven, Non-Blocking을 사용한다는 특징을 갖습니다. 콜백 함수라는 것이 "어떤 형식으로 코드를 작성하면 콜백 함수다!"라고 정의하기 보다는, 이러한 특성을 갖는 함수라고 이해해야 합니다. Event Driven Function Event Driven 함수로서의 성.. 7. Javascript 함수 (3) - 함수 프로퍼티 2 이번 아티클에서는 함수의 프로퍼티 중 표준 프로퍼티를 자세히 살펴보도록 하겠습니다. 함수의 length 프로퍼티 함수 객체가 갖는 표준 프로퍼티인 length는 [함수가 정상적으로 실행될 때 기대되는 인자의 개수]를 의미합니다. 아래 예제와 같이 함수 정의 시 선언된 파라미터의 개수를 각각 다르게 하여 각 함수의 length를 출력해 봅시다. function func0() { } function func1(x) { return x; } function func2(x, y) { return x + y; } function func3(x, y, z) { return x + y + z; } console.log(func0.length);// 0 console.log(func1.length);// 1 conso.. 7. Javascript 함수 (3) - 함수 프로퍼티 1 함수 객체의 표준 프로퍼티 함수는 다시 한 번 말하지만 '객체'입니다. 객체로서의 속성을 갖되, 함수로서 기능하기 위한 선언문이 작동하는 기능을 갖고 있습니다. 더불어 함수 객체로서 갖게되는 표준(여기서는 생성 시 자동으로 부여되는 속성으로 이해합시다) 프로퍼티를 갖게 됩니다. 아래 간단한 함수를 생성해 살펴보겠습니다. function plus(a, b){ return a + b; } console.dir(plus); 꽤 많은 내용이 출력되었습니다. 중요 프로퍼티와 관련된 사항은 후속 아티클에서 계속 디테일하게 살펴볼 예정이니, 우선 간단하게 각각의 프로퍼티들을 짚어보도록 하겠습니다. length 프로퍼티[표준] 정상 실행되었을 때 가져야 하는 인자의 개수. 추후 디테일하게 살펴보겠습니다. prototy.. 7. Javascript 함수 (2) - 함수의 객체 특성 2 앞서 살펴본 아티클에서, Javascript 함수의 객체로서의 특징을 살펴보았습니다. 이번 아티클에서는 값으로서 취급되는 함수의 특성을 살펴보도록 하겠습니다. 분류해서 살펴보겠지만, 결국 앞서 살펴본 값들을 사용하는 패턴에 함수를 그대로 적용시킬 수 있다는 정도의 의미로 이해해주시면 됩니다. 변수 or 프로퍼티의 값으로 할당할 수 있다 함수는 숫자, 문자열과 같은 값과 마찬가지로 변수나 프로퍼티의 값으로서 할당할 수 있게 됩니다. 객체의 원소로도 할당이 가능합니다. 예제를 통해 살펴봅시다. var val = 2874; var funcVar = function() { return 'This is a function.'; } console.log(funcVar()); var objVar = {}; objVa.. 7. Javascript 함수 (2) - 함수의 객체 특성 1 함수도 '객체'입니다 Javascript에서 기억해둬야 할 주요 특성 중 하나, 바로 "함수도 객체이다"라는 정의입니다. 우선, 함수가 "객체"라는 정의로 인해서 우리가 기억해 두어야 할 특성은 뭐가 있을까요? 하나씩 살펴보도록 하겠습니다. 함수도 프로퍼티를 갖습니다 앞서 배운것과 마찬가지로, 함수도 객체이므로 Javascript에서 통용되는 객체의 프로퍼티를 똑같이 가질 수 있습니다. 사용법도 동일합니다. 즉, 함수는 함수로서의 기능을 추가로 갖는 객체라고 생각해도 무방합니다. 특히, 함수의 경우 우리가 흔히 할당하여 사용하는 프로퍼티외에 [[Code]] 프로퍼티를 갖게됩니다. 이 프로퍼티 내에 함수로서의 기능을 수행하는 선언문이 할당되어 함수로서 기능을 하게 됩니다. 아래 예제를 통해 함수 객체의 프.. 7. Javascript 함수 (1) - 함수 선언 2 함수 표현식에서의 기명 함수 사용 앞서 함수 표현식에서의 익명함수에서 설명했듯이, 함수 표현식에서 사용되는 함수명은 코드 외부에서는 사용이 불가하기 때문에 실제로 사용되는 일은 많지 않습니다. 대부분 함수 변수를 통해 실행하게 됩니다. 단, 기명 함수를 대입하여 사용하는 경우가 있는데, 대표적인 사용 케이스가 재귀적 호출이 필요한 경우입니다. 즉, 함수 변수에 대입한 함수의 선언문 내부에서 함수 자기 자신을 다시 한 번 호출해야 하는 경우가 있을 때 해당 기명 함수를 사용하게 되는 것 입니다. 아래 대표적인 예제인 팩토리얼 함수 구현을 살펴보겠습니다. var factorialVar = function factorial(n) { if( n 7. Javascript 함수 (1) - 함수 선언 1 함수 선언문(Function Statement) Javascript에서 함수 선언문 형태로 함수를 선언할 경우, function 키워드 / 함수명 / 매개변수 리스트 / 몸체를 작성해 수행하고자 하는 함수를 선언하게 됩니다. 이때, 선언문 형태에서는 함수명이 반드시 있어야 합니다(즉, 익명 함수를 선언문 형태로 작성할 수 없습니다). 타 OOP 언어들과의 함수 리터럴의 차이점은, 리턴하는 데이터 타입과 매개변수의 데이터 타입을 정의하지 않는다는 점입니다. 아래 예시를 통해 함수 선언문의 구성 요소를 살펴보겠습니다. function plus(x, y) { return x + y; } console.log(plus(24, 88)); // 112 함수 표현식(Function Expression) Javascr.. 이전 1 ··· 55 56 57 58 59 60 다음