저는 최근에 JavaScript에 대한 약간의 지식을 정리했습니다. 예를 들어 일부 인터뷰 질문에서 함수의 형식 매개 변수와 함수 내에 선언된 변수 또는 함수의 이름이 같은 경우는 무엇입니까? 알고 싶은 분은 아래를 살펴보세요.
function ab(x){ console.log(x); var x; console.log(x); }; ab(3);
이 결과는 발생하지만 함수에서 선언된 변수에 값이 할당되면 전달된 매개변수가 대체됩니다.
function ab(x){ console.log(x); var x = 4; console.log(x); }; ab(3);
출력 결과는 다음과 같습니다. .
When in the function When 선언된 함수는 형식 매개변수와 이름이 동일합니다.
function ab(x){ console.log(x); function x(){ console.log("我是函数") }; console.log(x); }; ab(3);
출력 결과는 다음과 같습니다.
이런 일이 발생하는 이유는 무엇입니까? JS의 기능 중 하나는 함수 선언 호이스팅입니다. , 함수 본문에 선언된 함수는 함수의 첫 번째 줄로 승격되므로 ab가 호출될 때 x가 전달되자마자 3이 되지 않습니다.
하지만 변수에 익명 함수를 할당하는 방식은 그렇지 않습니다. 함수 선언 승격 기능이 없으므로 선언에서 x가 아래와 같이 변경됩니다.
저는 여러분에게 몇 가지 아이디어를 제공하기 위해 왔습니다. 오해의 소지가 있는 것이 있으면 주저하지 말고 지적해 주세요. ^^.
위 내용은 함수 매개변수에 대한 심층적인 이해와 함수 내에서 같은 이름을 가진 변수나 함수를 선언할 때 발생하는 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!