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

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

yulia
풀어 주다: 2018-09-19 14:48:07
원래의
2144명이 탐색했습니다.

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿