CoffeeScript-함수

함수는 프로그램의 어느 곳에서나 호출 할 수있는 재사용 가능한 코드 블록입니다. 이렇게하면 동일한 코드를 반복해서 작성할 필요가 없습니다. 프로그래머가 모듈 식 코드를 작성하는 데 도움이됩니다.

함수를 사용하면 프로그래머가 큰 프로그램을 여러 개의 작고 관리 가능한 함수로 나눌 수 있습니다.

일반적으로 JavaScript를 사용하여 두 가지 유형의 함수를 정의 할 수 있습니다. named functions, 함수 이름 본문이있는 일반 함수 및 Function expressions. 함수 표현식을 사용하여 함수를 변수에 할당 할 수 있습니다.

//named function
function sayHello(){
   return("Hello there");
}
 
//function expressions
var message = function sayHello(){
   return("Hello there");
}

CoffeeScript의 기능

CoffeeScript의 함수 구문은 JavaScript에 비해 더 간단합니다. CoffeeScript에서는 함수 표현식 만 정의합니다.

그만큼 functionCoffeeScript에서는 키워드가 제거되었습니다. 여기서 함수를 정의하려면 얇은 화살표 (->).

뒤에서 CoffeeScript 컴파일러는 화살표를 JavaScript의 함수 정의로 변환합니다.

(function() {});

필수는 아닙니다. returnCoffeeScript의 키워드. CoffeeScript의 모든 함수는 함수의 마지막 문을 자동으로 반환합니다.

  • 함수의 끝에 도달하기 전에 호출 함수로 돌아가거나 값을 반환하려면 다음을 사용할 수 있습니다. return 예어.

  • 인라인 함수 (한 줄에있는 함수) 외에도 CoffeeScript에서 여러 줄 함수를 정의 할 수도 있습니다. 중괄호가 제거되었으므로 적절한 들여 쓰기를 유지하여이를 수행 할 수 있습니다.

함수 정의

다음은 CoffeeScript에서 함수를 정의하는 구문입니다.

function_name = -> function_body

아래는 CoffeeScript의 함수 예입니다. 여기에서 우리는greet. 이 함수는 그 안에있는 문을 자동으로 반환합니다. 이름으로 파일에 저장function_example.coffee

greet = -> "This is an example of a function"

명령 프롬프트에서 다음 명령을 실행하여 컴파일하십시오.

c:\>coffee -c function_example.coffee

컴파일시 다음 JavaScript 코드를 생성합니다. 여기에서 CoffeeScript 컴파일러가 이름이 지정된 함수에서 문자열 값을 자동으로 반환하는 것을 볼 수 있습니다.greet().

// Generated by CoffeeScript 1.10.0
(function() {
  var greet;
  
  greet = function() {
    return "This is an example of a function";
  };

}).call(this);

여러 줄 기능

중괄호 대신 들여 쓰기를 유지하여 여러 줄로 함수를 정의 할 수도 있습니다. 그러나 우리는 함수 전체에서 한 줄에 대해 따르는 들여 쓰기와 일치해야합니다.

greet =  ->
  console.log "Hello how are you"

컴파일시 위의 CoffeeScript는 다음과 같은 JavaScript 코드를 제공합니다. CoffeeScript 컴파일러는 들여 쓰기를 사용하여 분리하고 중괄호 안에 넣은 함수의 본문을 가져옵니다.

// Generated by CoffeeScript 1.10.0
(function() {
  var greet;

  greet = function() {
    return console.log("Hello how are you");
  };

}).call(this);

인수가있는 함수

아래와 같이 괄호를 사용하여 함수에 인수를 지정할 수도 있습니다.

add =(a,b) ->
  c=a+b
  console.log "Sum of the two numbers is: "+c

위의 CoffeeScript 파일을 컴파일하면 다음 JavaScript가 생성됩니다.

// Generated by CoffeeScript 1.10.0
(function() {
  var add;

  add = function(a, b) {
    var c;
    c = a + b;
    return console.log("Sum of the two numbers is: " + c);
  };

}).call(this);

함수 호출

함수를 정의한 후 해당 함수를 호출해야합니다. 다음 예제와 같이 이름 뒤에 괄호를 넣어 함수를 간단히 호출 할 수 있습니다.

add = ->
  a=20;b=30
  c=a+b
  console.log "Sum of the two numbers is: "+c  
add()

컴파일시 위의 예제는 다음과 같은 JavaScript를 제공합니다.

// Generated by CoffeeScript 1.10.0
(function() {
  var add;

  add = function() {
    var a, b, c;
    a = 20;
    b = 30;
    c = a + b;
    return console.log("Sum of the two numbers is: " + c);
  };
  add();
}).call(this);

위의 CoffeeScript 코드를 실행하면 다음과 같은 출력이 생성됩니다.

Sum of the two numbers is: 50

인수로 함수 호출

같은 방식으로, 우리는 아래와 같이 인자를 전달하여 인자가있는 함수를 호출 할 수 있습니다.

my_function argument_1,argument_2
or
my_function (argument_1,argument_2)

Note − 인수를 전달하여 함수를 호출하는 동안 괄호 사용은 선택 사항입니다.

다음 예제에서 우리는 add() 두 개의 매개 변수를 받아들이고 호출했습니다.

add =(a,b) ->
  c=a+b
  console.log "Sum of the two numbers is: "+c
add 10,20

컴파일시 위의 예제는 다음 JavaScript를 제공합니다.

// Generated by CoffeeScript 1.10.0
(function() {
  var add;

  add = function(a, b) {
    var c;
    c = a + b;
    return console.log("Sum of the two numbers is: " + c);
  };

  add(10, 20);

}).call(this);

실행시 위의 CoffeeScript 코드는 다음과 같은 출력을 생성합니다.

Sum of the two numbers is: 30

기본 인수

CoffeeScript는 기본 인수도 지원합니다. 다음 예제와 같이 함수의 인수에 기본값을 할당 할 수 있습니다.

add =(a = 1, b = 2) ->
  c=a+b
  console.log "Sum of the two numbers is: "+c
add 10,20

#Calling the function with default arguments
add()

컴파일시 위의 CoffeeScript는 다음 JavaScript 파일을 생성합니다.

// Generated by CoffeeScript 1.10.0
(function() {
  var add;

  add = function(a, b) {
    var c;
    if (a == null) {
      a = 1;
    }
    if (b == null) {
      b = 2;
    }
    c = a + b;
    return console.log("Sum of the two numbers is: " + c);
  };

  add(10, 20);
  add()

}).call(this);

위의 CoffeeScript 코드를 실행하면 다음과 같은 출력이 생성됩니다.

Sum of the two numbers is: 30
Sum of the two numbers is: 3