함수 14

javaScript-함수(즉시실행함수IIFE)

즉시 실행 함수(IIFE, Immediately Invoked Function Expression) 즉시 실행 함수는 함수를 정의하고 즉시 실행하는 함수이다. 함수를 선언하자마자 즉시 호출하여 함수 내부의 코드를 실행하는 방식으로 독립적인 스코프를 생성한다. IIFE의 기본 문법이다 (function () { // 함수 내부의 코드 })(); 함수 리터럴을 괄호로 둘러싸고, 그 뒤에 즉시 호출하기 위한 빈 괄호를 추가하여 정의된다. 함수는 익명으로 선언되고 바로 뒤에 괄호 쌍을 사용하여 호출된다. (function () { var x = 10; console.log(x); // 10 })(); const a = 7 const double = () => { console.log(a * 2) } double..

패스트캠퍼스 2023.05.15

javaScript-함수(화살표 함수)

화살표 함수 화살표 함수는 함수를 간결하게 정의할 수 있고 문법적인 단축을 제공하며 주로 익명 함수나 콜백 함수를 정의할 때 사용된다. function sum(a, b) { return a + b } console.log(sum(1, 2)) // 3 console.log(sum(10, 20)) // 30 기본적으로 알고있는 함수의 문법이다. // 기본 문법 const add = (x, y) => { return x + y; }; console.log(add(2, 3)); // 5 화살표 함수의 기본 문법이다. // 단일 표현식 const sum = (a, b) => a + b console.log(sum(1, 2)) // 3 console.log(sum(10, 20)) // 30 단일 표현식을 이용하면 ..

패스트캠퍼스 2023.05.15

javaScript-함수(반환 및 종료)

// 반환 및 종료 function test() { return 'Test~' } console.log(test()) // Test~ 함수는 return 키워드를 이용하여 결과를 반환한다. function test() { return 'Test~' } console.log(test) // ƒ test() { return 'Test~' } 함수 이름을 console.log하면 함수 전체가 출력된다. function plus(num) { return num + 1 } console.log(plus(2)) // 3 console.log(plus(7)) // 8 console.log(plus()) // NaN function plus(num) { if (typeof num !== 'number') { conso..

패스트캠퍼스 2023.05.15

javaScript-함수(선언, 표현, 호이스팅)

함수의 기본 문법은 함수 선언문과 함수 표현식이 있다. // 함수 선언문(Declaration) function test() {} // 함수 표현식(Expression) const test() = function () {} 또한 호이스팅(Hoisting)은 함수 선언부가 유효 범위 최상단으로 끌어올려지는 현상을 말한다. // 호이스팅(Hoisting) function test1() { console.log('Test1') } test1() // Test1 test2() // test2 function test2() { console.log('test2') } 하지만 함수 표현식으로 함수를 표현하면 호이스팅이 발생하지 않는다. test() // Uncaught ReferenceError: test is n..

패스트캠퍼스 2023.05.15

javaScript-함수 객체의 프로퍼티

함수는 객체이므로 프로퍼티를 가질 수 있다. 브라우저 콘솔에서 console.dir 메서드를 사용하여 함수 객체의 내부를 볼 수 있다. function square(number){ return number * number; } console.dir(square) // ƒ square(number) arguments: null caller: null length: 1 name: "square" prototype: {constructor: ƒ} [[FunctionLocation]]: VM186:1 [[Prototype]]: ƒ () [[Scopes]]: Scopes[1] 함수 객체의 프로퍼티는 arguments, caller, length, name, __proto__접근자 프로퍼티, prototype 프로..

JavaScript 2023.04.15

javaScript-함수11 (순수 함수와 비순수 함수)

함수형 프로그래밍에서는 어떤 외부 상태에 의존하지도 않고 변경하지도 않는, 즉 부수 효과가 없는 함수를 순수 함수라고 한다. 순수 함수는 함수의 결과가 오직 인수에 의해서만 결정된다. 만약 외부 상태에는 의존하지 않고 함수 내부 상태에만 의존한다 해도 그 내부 상태가 호출될 때마다 변화하는 값(ex: 현재 시간) 이라면 순수 함수가 아니다. 외부 상태에는 전역 변수, 서버 데이터, 파일, console. DOM 등이 있다. var count = 0; // 현재 카운트를 나타내는 상태 // 순수 함수 increase는 동일한 인수가 전달되면 언제나 동일한 값을 반환한다. function increase(n){ return ++n; } // 순수 함수가 반환한 결과값을 변수에 재할당해서 상태를 변경 coun..

JavaScript 2023.02.24

javaScript-함수9 (중첩 함수)

함수 내부에 정의된 함수를 중첩 함수 또는 내부 함수라 한다. 그리고 중첩 함수를 포험하는 함수는 외부 함수라 부른다. 중첩 함수는 외부 함수 내부에서만 호출할 수 있다. 일반적으로 중첩 함수는 자신을 포함하는 외부 함수를 돕는 헬퍼 함수의 역할을 한다. function outer(){ var x = 1; // 중첩 함수 function inner() { var y = 2; // 외부 함수의 변수를 참조할 수 있다. console.log(x + y); // 3 } inner(); } outer();

JavaScript 2023.02.21

javaScript-함수7 (즉시 실행 함수)

즉시 실행 함수 함수 정의와 동시에 즉시 호출되는 함수를 즉시 실행 함수라고 한다. 즉시 실행 함수는 단 한 번만 호출되며 다시 호출할 수 없다. // 익명 즉시 실행 함수 (function ( ){ var a = 3; var b = 5; return a * b; }()); 즉시 실행 함수는 함수 이름이 없는 익명 함수를 사용하는 것이 일반적. 함수 이름이 있는 기명 즉시 실행 함수도 사용할 수 있다. // 기명 즉시 실행 함수 (function foo(){ var a = 3; var b = 5; return a * b; }()); foo(); // ReferenceError: foo is not defined 하지만 그룹 연산자 ( ... ) 내의 기명 함수는 함수 선언문이 아니라 함수 리터럴로 평가되..

JavaScript 2023.02.21

javaScript-함수6 (반환문)

함수는 return 키워드와 표현식(반환값)으로 이뤄진 반환문을 사용해 실행 결과를 함수 외부로 반환할 수 있다. function multiply(x, y){ return x * y; // 반환문 } // 함수 호출은 반환값으로 평가된다. var result = multiply(3, 5); console.log(result); // 15 multiply 함수는 두 개의 인수를 전달받아 곱한 결과값을 return 키워드를 사용해 반환한다. 함수는 return 키워드를 사용해 자바스크립트에서 사용 가능한 모든 값을 반환할 수 있다. 함수 호출은 표현식이다. 함수 호출 표현식은 return 키워드가 반환한 표현식의 평과 결과, 즉 반환값으로 평가된다. 반환문은 두 가지 역할을 한다. 1. 반환문은 함수의 실행..

JavaScript 2023.02.20

javaScript-함수5 (인수확인, 매개변수의 최대 개수)

인수 확인 자바스크립트 함수는 매개변수와 인수의 개수가 일치하는지 확인하지 않는다. 자바스크립트는 동적 타입 언어다. 따라서 자바스크립트 함수는 매개변수의 타입을 사전에 지정할 수 없다. function add(x, y){ return x + y; } console.log(add(2)); // NaN console.log(add('a', 'b')); // 'ab' 이러한 자바스크립트의 특성 때문에 위의 코드에서 아무런 이의 제기없이 코드를 실행한다. 따라서 자바스크립트의 경우 함수를 정의할 때 적절한 인수가 전달되었는지 확인할 필요가 있다. function add(x, y){ if (typeof x !== 'number' ¦¦ typeof y !== 'number' ){ // 매개변수를 통해 전달된 인수..

JavaScript 2023.02.20