JavaScript 실력을 올려줄 다양한 지식들 part 2

2024. 9. 24. 21:10·Daily Logs/TIL (Today I Learned)




3. 함수형 프로그래밍 지원 
자바스크립트는 함수형 프로그래밍을 지원하는 언어입니다.
함수를 일급 객체로 취급하고, 고차함수를 지원합니다.
재사용성과 가독성을 높일 수 있습니다.

//일급객체란 ? 함수를 일반 값과 마찬가지로 변수에 할당하거나,함수의 인자로 전달하거나 
//함수의 반환값으로 사용할 수 있는 객체를 의미합니다.

-일급객체 코드예시

//함수를 변수에 할당
const add = function(a, b) {
  return a + b;
}

// 함수를 인자로 받는 함수
function calculate(func, a, b) {
  return func(a, b);
}

// 함수를 반환하는 함수
function getAddFunction() {
  return add;
}

// 함수를 일급 객체로 다루어 코드의 재사용성을 높임
console.log(calculate(add, 2, 3)); // 5
console.log(getAddFunction()(2, 3)); // 5

//고차함수란 ? 함수를 인자로 받거나 함수를 반환하는 함수를 의미합니다.

고차함수 예시

// 고차 함수 예시: 함수를 인자로 받는 함수
function operate(func, a, b) {
  return func(a, b);
}

function add(a, b) {
  return a + b;
}

function multiply(a, b) {
  return a * b;
}

console.log(operate(add, 2, 3)); // 5
console.log(operate(multiply, 2, 3)); // 6

4. 비동기 처리 -> 비동기 처리는 작업을 순차적으로 기다리지 않고 병렬로 처리할 수 있도록 하는 방식입니다.
네트워크 요청과 같이 시간이 오래 걸릴 수 있는 작업을 처리할 때 유용합니다.

// 비동기 처리 예시 

 

// 비동기 파일 읽기
const fs = require('fs');

// 콜백 방식
fs.readFile('example.txt', 'utf8', (err, data) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log(data);
});

// 프로미스 방식
const readFilePromise = (filePath) => {
  return new Promise((resolve, reject) => {
    fs.readFile(filePath, 'utf8', (err, data) => {
      if (err) {
        reject(err);
      } else {
        resolve(data);
      }
    });
  });
};

readFilePromise('example.txt')
  .then((data) => console.log(data))
  .catch((err) => console.error(err));

// async/await 방식
const readFileAsync = async (filePath) => {
  try {
    const data = await readFilePromise(filePath);
    console.log(data);
  } catch (err) {
    console.error(err);
  }
};

readFileAsync('example.txt');

콜백,프로미스 ,async/await 를 이용해 비동기 파일 읽기를 처리할 수 있다.

5. 클라이언트 및 서버 모두에서 사용가능 
양쪽에서 사용가능하여 웹 개발 전반에 걸쳐 자바스크립트를 활용할 수 있습니다.

part 3 에서는 자바스크립트 기본 문법에 대해서 알아보겠습니다 ! 

'Daily Logs > TIL (Today I Learned)' 카테고리의 다른 글

JavaScript 실력을 올려줄 다양한 지식들 part 4  (2) 2024.09.26
JavaScript 실력을 올려줄 다양한 지식들 part 3  (2) 2024.09.25
JavaScript 실력을 올려줄 다양한 지식들 part 1  (2) 2024.09.23
9월 20일 dotenv  (1) 2024.09.20
9월 19일 목요일 API에 대하여  (1) 2024.09.19
'Daily Logs/TIL (Today I Learned)' 카테고리의 다른 글
  • JavaScript 실력을 올려줄 다양한 지식들 part 4
  • JavaScript 실력을 올려줄 다양한 지식들 part 3
  • JavaScript 실력을 올려줄 다양한 지식들 part 1
  • 9월 20일 dotenv
Jcob.moon
Jcob.moon
반가워요~ 하루하루 꾸준히 코딩 작성하는 곳입니다 !!
  • Jcob.moon
    Pixelated Thoughts
    Jcob.moon
  • 전체
    오늘
    어제
    • HelloWorld (174)
      • Daily Logs (123)
        • TIL (Today I Learned) (64)
        • Algorithm Practice (55)
        • Dev Book Notes (4)
      • Deep Dives (36)
        • 문제 해결 (Troubleshooting) (3)
        • CS Fundamentals (22)
        • Career Prep (4)
        • Technical Notes (7)
      • Project Log (7)
      • Any (3)
      • Cooperation (4)
        • Github (2)
        • Conventions (1)
        • Git (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
Jcob.moon
JavaScript 실력을 올려줄 다양한 지식들 part 2
상단으로

티스토리툴바