>웹 프론트엔드 >JS 튜토리얼 >자바스크립트 함수 범위 학습 예시(js 범위)_기본지식

자바스크립트 함수 범위 학습 예시(js 범위)_기본지식

WBOY
WBOY원래의
2016-05-16 17:04:001266검색

C와 같은 일부 프로그래밍 언어에서는 중괄호 안의 각 코드 조각에 고유한 범위가 있으며, 변수가 선언된 코드 세그먼트 외부에는 변수가 표시되지 않습니다. ), JavaScript에는 블록 수준 범위가 없습니다. 대신 JavaScript는 함수 범위를 사용합니다. 변수는 변수가 선언된 함수의 본문 내에서뿐만 아니라 중첩된 함수의 본문 내에서도 정의됩니다. 다음 코드에서는 서로 다른 위치에 정의된 i, j, k는 모두 동일한 범위에 정의되어 있습니다

코드 복사 코드는 다음과 같습니다.

함수 텍스트(o)
{
var i=0;
경고(typeof o)
if(typeof o == "string")
{ var j=0
for(var k=0;k< ;10;k )                                                                                      ;//출력 0
}



JavaScript의 함수 범위는 함수 내부에 선언된 모든 변수가 함수 본문 내에서 항상 표시된다는 의미입니다. 흥미롭게도 이는 변수가 선언되기도 전에 이미 사용 가능하다는 것을 의미합니다. JavaScript의 이 기능을 비공식적으로 호이스팅이라고 합니다. 즉, JavaScript 함수 본문(할당과 관련 없음)에 선언된 모든 변수는 함수 본문의 맨 위로 "고급"됩니다. 다음 코드를 보세요



코드 복사

코드는 다음과 같습니다.

var global="globas"; >function globals () { Alert(global);//undefine var global="hello QDao"; Alert(global);//hello QDao
}



함수 범위의 특성상 지역 변수는 항상 함수 본문 전체에 정의됩니다. 즉, 함수 본문 내의 변수는 동일한 이름을 가진 전역 변수를 덮는다는 의미입니다. 그러나 지역 변수는 프로그램이 var 문을 실행할 때까지 실제로 할당되지 않습니다. 따라서 위 프로세스는 변수 초기화를 원래 상태로 유지하면서 함수 내의 변수 선언을 함수 본문의 맨 위로 "전진"하는 것과 같습니다. 위치. :




코드 복사

코드는 다음과 같습니다.

var global="globas"; >function globals () { var global; 경고(전역);//정의되지 않음 global="hello QDao"
경고(전역);//hello 큐다오
}


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