Notice
Recent Posts
Recent Comments
Link
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Archives
Today
Total
관리 메뉴

memo6759 님의 블로그

2025-11-07(javascript - 함수, 화살표 함수, 고차함수, 내장객체, 스프레드..) 본문

HDC 학습일지

2025-11-07(javascript - 함수, 화살표 함수, 고차함수, 내장객체, 스프레드..)

heewon09 2025. 11. 8. 16:59

자바스크립트 함수

함수 (Function)

1) 함수 선언과 호출

 
function 함수이름(매개변수1, 매개변수2) { // 실행 코드 return 결과값; } 함수이름(값1, 값2); // 호출

2) 함수와 변수의 스코프 (Scope)

  • 전역변수(Global) : 함수 밖에서 선언 → 프로그램 전체에서 사용 가능
  • 지역변수(Local) : 함수 안에서 선언 → 함수 내부에서만 사용 가능
let globalVar = 10; function test() { let localVar = 5; console.log(globalVar); // ✅ 가능 console.log(localVar); // ✅ 가능 } console.log(localVar); // ❌ 에러 (함수 내부 변수)

3) 함수와 변수의 호이스팅 (Hoisting)

  • JS는 코드를 실행하기 전 함수 선언부와 var 선언문을 메모리에 먼저 등록
  • 즉, 선언보다 먼저 호출해도 동작할 수 있음
hello(); // 가능 (호이스팅) function hello() { console.log("안녕!"); }
  • 단, 함수 표현식(익명함수) 은 호이스팅되지 않음
  • var, let, const 모두 호이스팅은 되지만,
    • var는 undefined로 초기화
    • let, const는 TDZ(Temporal Dead Zone) 때문에 선언 전에 접근 불가

4) 표현식으로 함수 정의하기 (Function Expression)

 
let greet = function() { console.log("안녕하세요!"); }; greet(); // "안녕하세요!"
  • 함수명을 생략할 수 있어 익명 함수(anonymous function) 가능
  • 변수에 저장되므로 값처럼 취급
  • 호이스팅이 발생하지 않음

5) 화살표 함수 (Arrow Function)

ES6에서 추가된 간결한 함수 문법

 
// 기본형 const add = (a, b) => a + b; // 여러 줄일 때 const sum = (a, b) => { const result = a + b; return result; }; // 매개변수가 하나일 때 const square = x => x * x;

6) 고차함수(High-order Function) & 콜백함수(Callback Function)

  • 고차함수 : 함수를 인자로 받거나 함수를 반환하는 함수
  • 콜백함수 : 다른 함수의 인자로 전달되는 함수
function greet(name) { console.log(`안녕, ${name}!`); } function processUser(callback) { const name = "희원"; callback(name); } processUser(greet); // 콜백함수 호출

 


5. 내장 객체 (Built-in Objects)

자바스크립트 엔진이 미리 만들어 놓은 객체들

  • String, Number, Math, Date, Array, Map, Set, JSON, ...

 Array 고차함수

1. forEach()

각 요소를 순회하며 실행 (반환값 없음)

 
[1,2,3].forEach(num => console.log(num));

2. map()

새로운 배열을 만들어 반환

let doubled = [1,2,3].map(n => n * 2); console.log(doubled); // [2,4,6]

3. filter()

조건을 만족하는 요소만 추출

let evens = [1,2,3,4].filter(n => n % 2 === 0); console.log(evens); // [2,4]

4. find()

조건에 맞는 첫 번째 요소 반환

let firstEven = [1,2,3,4].find(n => n % 2 === 0); console.log(firstEven); // 2

5. findIndex()

조건에 맞는 인덱스 반환

let idx = [1,2,3,4].findIndex(n => n === 3); console.log(idx); // 2

6. reduce()

배열을 하나의 값으로 축약 (누적)

 
let sum = [1,2,3,4].reduce((acc, cur) => acc + cur, 0); console.log(sum); // 10

 6. 스프레드 연산자 & 구조분해할당

1) 스프레드 연산자 (...)

배열이나 객체를 펼침

let arr1 = [1,2,3]; let arr2 = [...arr1, 4,5]; console.log(arr2); // [1,2,3,4,5] let obj1 = {name: "희원", age: 20}; let obj2 = {...obj1, job: "개발자"}; console.log(obj2);

2) 구조분해할당 (Destructuring)

배열이나 객체의 값을 변수에 간단히 할당

let [a, b] = [10, 20]; console.log(a, b); // 10, 20 let {name, age} = {name: "희원", age: 20}; console.log(name, age);

7. 사용자 정의 객체

let person = { name: "희원", age: 25, greet: function() { console.log(`안녕하세요, ${this.name}입니다!`); } }; person.greet(); // "안녕하세요, 희원입니다!"

 

'HDC 학습일지' 카테고리의 다른 글

2025-11-11(react)  (0) 2025.11.12
2025-11-10(javascript - final)  (0) 2025.11.11
2025-11-06(자바스크립트)  (0) 2025.11.07
2025-11-04(CSS  (1) 2025.11.05
2025-11-03(HTML - final)  (0) 2025.11.04