>  기사  >  웹 프론트엔드  >  함수 매개변수에 대한 심층적인 이해와 함수 내에서 같은 이름을 가진 변수나 함수를 선언할 때 발생하는 문제

함수 매개변수에 대한 심층적인 이해와 함수 내에서 같은 이름을 가진 변수나 함수를 선언할 때 발생하는 문제

yulia
yulia원래의
2018-09-19 14:48:072104검색

저는 최근에 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

관련 기사

더보기