WEB/STUDY_note

[javascript] 함수 : 데이터 실행하기 공부하기

aimee418 2023. 3. 16. 19:58

“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”

- Frederick Philips Brooks
Mythical Man-Month 저자
728x90
반응형

혼란합니다. 점점 어려워지고 있는 자바스크립트...함수공부

이번엔 보충이 필요한 함수유형에 대해 공부해 보려고 합니다.  

 

/ 01. 함수와 매개변수를 이용한 함수유형

✈함수는 프로그래밍에서 매우 중요한 개념 중 하나이며, 일반적으로 어떤 입력값을 받아 처리를 수행한 후 결과를 반환하는 기능을 수행합니다. 이때 함수를 사용할 때 매개변수(parameter)를 이용하여 함수에 필요한 입력값을 전달합니다.

 

함수와 매개변수를 이용하여 다양한 함수 유형을 만들 수 있습니다.

  1. 인자 없는 함수 (Function without arguments) : 입력값이 없는 함수로, 함수 내부에서 정의된 코드를 실행하고 결과를 반환합니다.
  2. 인자 있는 함수 (Function with arguments) : 함수 호출 시에 매개변수로 입력값을 전달받아, 함수 내부에서 해당 입력값을 처리하고 결과를 반환합니다.
  3. 반환값 없는 함수 (Function without return value) : 함수 내부에서 처리된 결과를 반환하지 않고, 다른 동작을 수행합니다.
  4. 반환값 있는 함수 (Function with return value) : 함수 내부에서 처리된 결과를 반환하고, 해당 결과를 변수에 저장하거나 다른 함수의 인자로 사용할 수 있습니다.
  5. 내장 함수 (Built-in function) : 언어 자체에서 제공하는 함수로, 별도의 함수 정의 없이 사용할 수 있습니다.
  6. 사용자 정의 함수 (User-defined function) : 개발자가 직접 함수를 정의하여 사용하는 함수로, 함수의 이름, 매개변수, 반환값 등을 개발자가 정의합니다.
  7. 재귀 함수 (Recursive function) : 함수 내부에서 자신을 다시 호출하는 함수로, 반복문을 사용할 수 없는 경우에 유용하게 사용됩니다.
  8. 콜백 함수 (Callback function) : 함수를 인자로 받아 해당 함수가 실행될 때마다 호출되는 함수로, 비동기 처리를 구현할 때 유용하게 사용됩니다.
  9. 익명 함수 (Anonymous function) : 함수의 이름을 정의하지 않고 함수 자체를 변수에 할당하여 사용하는 함수로, 일회성으로 사용되는 함수에 유용합니다.
  10. 고차 함수 (Higher-order function) : 함수를 인자로 받거나 함수를 반환하는 함수로, 함수의 재사용성과 코드의 간결성을 높일 수 있습니다.

 

/ 02. 배열을 이용한 함수유형

✈이 유형의 함수들은 배열을 이용하여 데이터를 저장하고 처리하는 데에 유용합니다. 또한, 배열을 이용하면 다양한 데이터 구조를 만들 수 있어서 복잡한 문제를 해결하는 데에도 유용합니다.

함수와 배열을 이용한 함수유형에는 여러 가지가 있지만, 대표적으로 다음과 같은 유형이 있습니다.

 

1. 매개변수로 배열을 받아 처리하는 함수: 배열을 인자로 전달받아 그 배열을 이용하여 작업을 수행하는 함수입니다. 예를 들어, 배열의 원소를 모두 더하는 함수는 다음과 같이 정의될 수 있습니다.

def sum_array(arr):
    sum = 0
    for i in range(len(arr)):
        sum += arr[i]
    return sum

 

2. 반환값으로 배열을 반환하는 함수: 함수 내부에서 처리한 결과를 배열로 반환하는 함수입니다. 예를 들어, 1부터 n까지의 자연수를 담은 배열을 반환하는 함수는 다음과 같이 정의될 수 있습니다.

def make_array(n):
    arr = []
    for i in range(1, n+1):
        arr.append(i)
    return arr

 

3. 배열을 이용한 상태를 가지는 함수: 함수 내부에서 처리한 결과를 배열로 저장하고 이를 다음 함수 호출에 사용하는 함수입니다. 예를 들어, 이전 함수 호출에서 생성한 배열에 새로운 원소를 추가하는 함수는 다음과 같이 정의될 수 있습니다.

def add_element(arr, elem):
    arr.append(elem)

/03. 함수와 배열, 객체를 이용한 함수 유형

 

함수와 배열, 객체를 이용한 함수유형에는 다양한 유형이 있지만, 대표적으로 다음과 같은 유형이 있습니다.

 

 

1. 배열을 인자로 받는 함수: 배열을 인자로 받아 해당 배열의 요소들을 이용하여 작업하는 함수입니다. 예를 들어, 배열의 합을 구하는 함수는 다음과 같이 정의될 수 있습니다.

 
def array_sum(arr):
    result = 0
    for element in arr:
        result += element
    return result
  1. 배열을 반환하는 함수: 배열을 반환하는 함수입니다. 예를 들어, 1부터 n까지의 자연수를 담은 배열을 반환하는 함수는 다음과 같이 정의될 수 있습니다.
def get_natural_numbers(n):
    return [i for i in range(1, n+1)]
  1. 객체를 인자로 받는 함수: 객체를 인자로 받아 해당 객체의 프로퍼티를 이용하여 작업하는 함수입니다. 예를 들어, 객체의 합을 구하는 함수는 다음과 같이 정의될 수 있습니다.
def object_sum(obj):
    result = 0
    for key in obj:
        result += obj[key]
    return result
  1. 객체를 반환하는 함수: 객체를 반환하는 함수입니다. 예를 들어, 이름과 나이를 담은 객체를 반환하는 함수는 다음과 같이 정의될 수 있습니다.
def get_person(name, age):
    return {'name': name, 'age': age}

수업시간 예제

function func(num, str1, str2){
    document.write(num +"."+str1+"가"+str2+"되었습니다."+"&ltbr&gt");
}
const info = [
    {
        num: 1,
        name: "함수",
        word: "실행"
    },
    {
        num: 2,
        name: "자바스크립트",
        word: "실행"
    },
    {
        num: 3,
        name: "리액트",
        word: "실행"
    }
] 
func(info[0].num, info[0].name, info[0].word)
func(info[1].num, info[1].name, info[1].word)
func(info[2].num, info[2].name, info[2].word)

 

 

/04. 객체 안에 함수를 이용한 형태의 함수유형

✈객체 안에 함수를 이용한 형태를 객체 지향 프로그래밍에서는 메서드(Method)라고 부릅니다. 메서드는 객체의 특정 기능을 수행하기 위해 객체 내부에 정의된 함수입니다. 객체 지향 프로그래밍에서는 객체와 그 객체의 행동(메서드)를 하나의 단위로 묶어서 프로그래밍하는 개념입니다.

 

예를 들어, 사각형 객체를 생성하고 사각형의 넓이를 계산하는 메서드를 구현해보겠습니다.

class Rectangle:
    def __init__(self, width, height):
        self.width = width
        self.height = height
        
    def get_area(self):
        return self.width * self.height

위 코드에서는 Rectangle이라는 클래스를 정의하고, __init__ 메서드를 이용하여 사각형의 가로와 세로 길이를 인스턴스 변수로 저장합니다. 그리고 get_area 메서드를 이용하여 사각형의 넓이를 계산합니다.

이제 사각형 객체를 생성하고 메서드를 호출해보겠습니다.

rect = Rectangle(10, 20)
area = rect.get_area()
print(area) # 200 출력

 

위 코드에서는 Rectangle 클래스를 이용하여 rect 객체를 생성합니다. 이후 get_area 메서드를 호출하여 사각형의 넓이를 계산하고, 그 값을 출력합니다.

 

수업시간 예제

const info = {
    num1 : 1, 
    name1 : "함수",
    num2: 2,
    name2: "자바스크립트",
    num3 : 3,
    name3: "리액트",
    word: "실행",
    result1 : function(){
        document.write(info.num1 +"."+info.name1+"가"+info.word+"되었습니다."+"&ltbr&gt");
    },
    result2 : function(){
        document.write(info.num2 +"."+info.name2+"가"+info.word+"되었습니다."+"&ltbr&gt");
    },
    result3 : function(){
        document.write(info.num3 +"."+info.name3+"가"+info.word+"되었습니다."+"&ltbr&gt");
    }
}
info.result1();
info.result2();
info.result3();

🔊객체 안에 함수를 이용한 형태는 객체 지향 프로그래밍에서 가장 핵심적인 개념 중 하나입니다. 이를 통해 코드의 재사용성과 유지보수성을 높일 수 있으며, 객체의 특성과 행동을 하나의 단위로 묶어서 프로그래밍할 수 있습니다.