JavaScript 함수 정...LOGIN

JavaScript 함수 정의

함수 정의

자바스크립트에서 함수를 정의하는 방법은 다음과 같습니다.

function abs(x) {
if (x >= 0) { return x;
} else { return -x;
}
}

위의 abs() 함수 정의는 다음과 같습니다.

function은 이것이 함수 정의임을 나타냅니다. abs는 함수의 이름입니다. (x) 함수의 매개변수는 괄호 안에 나열됩니다. , 여러 매개변수는 다음으로 구분됩니다. { ... } 사이의 코드는 함수 본문으로, 여러 문을 포함하거나 심지어 문이 없을 수도 있습니다.

함수 본문 안의 명령문이 실행될 때 return이 실행되면 함수가 실행되고 결과가 반환된다는 점에 유의하세요. 따라서 조건부 판단과 루프를 통해 매우 복잡한 로직을 함수 내부에서 구현할 수 있습니다.

return 문이 없으면 함수 실행 후 결과가 반환되지만 결과는 정의되지 않습니다.

자바스크립트 함수도 객체이기 때문에 위에서 정의한 abs() 함수는 실제로는 함수 객체이고, 함수명인 abs는 함수를 가리키는 변수라고 볼 수 있습니다.

그래서 함수를 정의하는 두 번째 방법은 다음과 같습니다.

var abs = function (x) {
if (x >= 0) { return x;
} else { return -x;
}
};


이렇게 하면 function (x) { ... } 는 익명 함수이므로 함수 이름이 없습니다. 하지만 이 익명함수는 변수 abs에 할당되어 있으므로, 변수 abs를 통해 함수를 호출할 수 있습니다.

위의 두 정의는 완전히 동일합니다. 두 번째 방법에서는 전체 구문에 따라 함수 본문 끝에 ;를 추가하여 할당 문의 끝을 표시해야 합니다.

함수는 JavaScript 언어의 핵심 중 하나입니다. 기본 구문은 다음과 같습니다.

function functionName(arg0, arg1, ...) {

}

문법 해석

함수 사용 키워드 정의 함수

함수 키워드 뒤에는 공백과 함수 이름이 옵니다.

함수 이름 뒤에는 괄호 쌍이 옵니다. arg0과 arg1은 함수의 매개변수를 ","로 구분합니다. 기호 매개변수 수는 0~25개일 수 있습니다. 0은 매개변수가 없음을 의미합니다. 매개변수가 없는 경우 () 괄호는 생략할 수 없습니다. 25개를 초과하는 매개변수는 JavaScript에서 무시됩니다

{}는 함수

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
    <script type="text/javascript">  
          function hello(name){
          document.write((name + ",你好!"));
        }
    </script>  
</head>  
<body>  
  <input type="button" onclick="hello('小明')" value="确定"/>
</body>  
</html>

함수 표현식

에 의해 구현될 함수문이 포함된 함수 본문입니다.

JavaScript 함수는 표현식을 통해 정의할 수 있습니다.

함수 표현식은 변수에 저장될 수 있습니다:

var x = function (a, b) {return a * b};

함수 표현식이 변수에 저장된 후 변수를 함수로 사용할 수도 있습니다:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<p id="demo"></p>
<script>
var x = function (a, b) {return a * b};
document.getElementById("demo").innerHTML = x(6, 9);
</script>
</body>
</html>


함수 승격(호이스팅)

이전 튜토리얼에서 우리는 이미 "호이스팅"에 대해 배웠습니다.

호이스팅은 현재 범위를 앞으로 끌어올리는 JavaScript의 기본 동작입니다.

호이스팅은 변수 선언과 함수 선언에 적용됩니다.

따라서 함수는 선언되기 전에 호출될 수 있습니다.

myFunction(5);

function myFunction(y) {
Return y * y;
}

함수를 사용하여 함수를 정의할 때는 호이스트할 수 없습니다. 표현.


arguments

JavaScript에는 함수 내에서만 작동하고 항상 현재 함수의 호출자가 전달한 모든 매개 변수를 가리키는 무료 키워드 인수도 있습니다.

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
    <script type="text/javascript">  
       function foo(x) {
            alert(x); // 10
            for (var i=0; i<arguments.length; i++) {
            alert(arguments[i]); // 10, 20, 30
            }
          }
        foo(10, 20, 30);
    </script>  
</head>  
<body>  
</body>  
</html>


Function은 객체입니다

JavaScript에서 typeof 연산자를 사용하여 함수 유형을 결정하면 "function"이 반환됩니다.

하지만 JavaScript 함수는 객체로 더 정확하게 설명됩니다.

JavaScript 함수에는 속성과 메서드가 있습니다.

arguments.length 속성은 함수 호출 중에 수신된 매개변수 수를 반환합니다.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<p id="demo"></p>
<script>
function myFunction(a, b) {
    return arguments.length;
}
document.getElementById("demo").innerHTML = myFunction(4,7,3);
</script>
</body>
</html>


다음 섹션
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <script type="text/javascript"> function hello(name,age){ document.write("我叫" + name + ",今年" + age + "岁!"); } </script> </head> <body> <input type="button" onclick="hello('小明',18)" value="确定" /> </body> </html>
코스웨어