English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaScript 기본 튜토리얼

JavaScript 객체

JavaScript 함수

JS HTML DOM

JS 브라우저 BOM

AJAX 기본 튜토리얼

JavaScript 참조 매뉴얼

JavaScript 함수 정의

함수는 코드 블록을 정의하고 이름을 지정하여 필요에 따라 반복적으로 실행할 수 있습니다.

function 키워드를 사용하여 함수를 정의할 수 있으며, () 연산자를 사용하여 함수를 호출할 수 있습니다.

함수 선언

이 튜토리얼의 앞부분에서는 다음과 같은 문법을 사용하여 알아봤습니다:선언함수:

function nameOfFunction(parameters) {
  // 要执行的语句
}

선언된 함수는 즉시 실행되지 않습니다. 선언된 함수는 함수의 이름을 지정하고, 함수가 호출될 때 수행할 작업을 지정합니다.

function greet() {
   document.write("Hello, World!");
}
테스트 보기‹/›

위의 예제에서는 'greet'라는 이름의 함수를 선언(정의)했습니다. 이 함수는 'Hello, World!'라는 메시지를 출력합니다. 이 함수는 () 연산자를 사용하여 호출할 수 있습니다. 예를 들어, greet()와 같이 호출할 수 있습니다.

함수 표현식

JavaScript는 함수를 변수에 할당하여 그 변수를 함수로 사용할 수 있습니다. 이를함수 표현식

//함수 표현식은 변수에 저장될 수 있습니다
var sum = function(a, b) {
return a + b;
);
// 이 변수는 함수로 사용될 수 있습니다
var x = sum(100, 8);
테스트 보기‹/›

위 함수는 실제로는 다음과 같은 것입니다익명 함수(이름이 없는 함수)。

변수에 저장된 함수는 함수 이름이 필요하지 않습니다. 항상 변수 이름을 사용하여 호출하세요.

위 함수는 세미콜론으로 끝나서, 그것이 실행 문장의 일부입니다.

함수的提升

이 튜토리얼의 앞부분에서는 다음과 같이 알아봤습니다:JavaScript의 提升

的提升는 JavaScript가 선언을 현재 범위 상단으로 이동시키는 기본 동작입니다.

따라서, JavaScript 함수를 선언하기 전에 호출할 수 있습니다:

// 함수 선언 전 호출
greet();
function greet() {
  document.getElementById("output").innerHTML = "Hello World";
}
테스트 보기‹/›

使用表达式定义的函数不会被提升。

自执行匿名函数

可以使函数表达式“自执行”。

自执行是一种JavaScript函数,它在定义后立即运行。

自动调用(启动)自执行表达式,而不需要调用它。也称为IIFE(立即调用的函数表达式)。

如果函数表达式后跟(),则函数表达式将自动执行。

(function () {
  // 要执行的语句
})();
테스트 보기‹/›

将IIFE分配给变量将存储函数的返回值,而不是函数定义本身:

let result = (function () {
let name = "Seagull"; 
return name; 
})(); 
//立即创建输出
result;   // "Seagull"
테스트 보기‹/›

下面的示例演示如何将参数传递给IIFE(立即调用的函数表达式):

(function (x, y) {
  document.getElementById("output").innerHTML = x + y;
})(5, 10);
테스트 보기‹/›

回调函数

回调函数是作为参数传递给另一个函数的函数,然后在外部函数中调用它来完成某种例程或操作。

function greet(name) {
  alert("Hello " + name);
}
function processInput(callback) {
  let name = prompt("Please enter your name:");
  callback(name);
}
// Passing greet function into processInput function as an argument
processInput(greet);
테스트 보기‹/›

上面的示例是一个同步回调,因为它将会立即执行。

但是,回调通常用于在异步操作完成后继续执行代码。

递归

递归是一种迭代操作的技术,方法是使函数重复调用自身直到获得结果。

下面的示例使用递归获取数字的階乘:

var factorial = function(number) {
  if (number <= 0) {
 return 1;
  } else {
 return (number * factorial(number - 1));
  }
);
document.getElementById("output").innerHTML = factorial(5);
테스트 보기‹/›

플라이너 함수

지금까지, 우리는 function 키워드를 사용하여 함수를 정의하는 방법을 소개했습니다.

하지만, ECMAScript 6부터, 하나의 업데이트된 더 간결한 방법으로 정의할 수 있는플라이너 함수표현식의함수

众所周知,플라이너 함수등호와 대각선을 사용하여 표현합니다: =>。

//함수 표현식
var sum = function(x, y) {
   return x + y;
}
// 플라이너 함수
const sum = (x, y) => x + y;
테스트 보기‹/›

플라이너 함수는 자신의 this를 가지지 않습니다. 따라서 그들은 정의되지 않은 것으로 사용되지 않습니다.객체 메서드

플라이너 함수는 제기되지 않습니다. 먼저 정의해야 합니다.그런 다음 다시 사용합니다그들.

const 사용은 var보다 안전합니다. 함수 표현식은 항상 상수입니다.

함수가 단일 문장일 때만 return 키워드와 대괄호를 생략할 수 있습니다. 따라서 항상 그들을 유지하는 것이 좋은 습관입니다.

함수가 단일 문장일 때만 return 키워드와 대괄호를 생략할 수 있습니다. 따라서 항상 그들을 사용하는 것이 좋은 습관입니다.

const sum = (x, y) => { return x + y };
테스트 보기‹/›