함수 선언문
함수 키워드를 사용하고 그 뒤에 매개변수 집합과 함수 본문이 옵니다.
function funcname([arg1 [,arg2 [...,argn]]]){ statement; }
funcname은 선언할 함수 이름의 식별자입니다. 매개변수 목록은 함수 이름 뒤에 괄호로 묶이고 쉼표로 구분됩니다. 함수를 호출할 때 이 식별자는 함수에 전달된 실제 매개변수를 참조합니다
[참고] 함수 명령문에는 중괄호가 필요합니다. 이는 함수가 body에는 하나의 명령문만 포함되어 있으며 중괄호로 묶어야 합니다.
function test()//SyntaxError: Unexpected end of input function test(){};//不报错 while(true);//不报错
Hoisting
범위 블로그 시리즈의 세 번째 기사에서 함수 선언 호이스팅(hoisting)에 대해 언급했는데, 함수 이름과 함수 본문이 모두 호이스팅됩니다.
foo(); function foo(){ console.log(1);//1 }
위 코드 조각이 콘솔에 1을 출력할 수 있는 이유는 아래와 같이 foo() 함수 선언이 승격되었기 때문입니다.
function foo(){ console.log(1); } foo();
Duplicate
변수의 중복 선언은 쓸모가 없지만 함수의 중복 선언은 쓸모가 없습니다. 이전 선언을 덮어씁니다(변수 선언이든 함수 선언이든)
//变量的重复声明无用var a = 1; var a; console.log(a);//1
//由于函数声明提升优先于变量声明提升,所以变量的声明无作用 var a; function a(){ console.log(1); } a();//1
//后面的函数声明会覆盖前面的函数声明 a();//2 function a(){ console.log(1); } function a(){ console.log(2); }
따라서 동일한 범위에서 반복되는 선언은 피해야 합니다
Deletion
변수 선언과 마찬가지로 함수 선언문으로 생성된 변수는 삭제할 수 없습니다
function foo(){ console.log(1); } delete foo;//false console.log(foo());//1
위 내용은 자바스크립트 함수의 기본 기능 선언, 승격, 복제, 삭제 예시에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!