JS에서 함수를 정의하는 방법은 두 가지가 있습니다.
(1) 일반적인 함수 선언
function slide(arguments){ //...code }
(2) 정의 함수 표현식 형태의 함수
var slide = function(arguments){ //...code }
위의 두 가지 방법은 논리적으로 동일하지만 여전히 약간의 차이점이 있습니다.
차이점 1: 예제 1의 함수는 코드가 실행되기 전에 범위에 로드되는 반면, 예제 2에서는 코드가 해당 라인까지 실행될 때까지 정의되지 않습니다.
차이점 2: 함수 선언은 함수에 이름을 할당하는 반면, 함수 표현식은 익명 함수를 생성한 다음 익명 함수를 변수에 할당합니다.
function factorial(num){ if(num<=1){ return 1; } else { return num*arguments.callee(num-1); } } var anotherFactorial = factorial; factorial = null; console.log(anotherFactorial);//输出factorial(){},有函数名
함수 표현식으로 정의한 경우
var factorial = function(num){ //...code } //...code console.log(anotherFactorial);//输出function(){},匿名函数